如何自动用主键字段填充外键字段?

时间:2018-12-17 14:10:57

标签: php sql foreign-keys primary-key

我有两个表,分别称为地址和用户。它们使用来自网页的用户提交的数据正确填充,但是我希望用户表中的AddressID字段自动更新为地址表AddressID字段中的值。目前,我必须在用户表中手动输入正确的ID,然后才能使用这种关系。我有多个插入查询,这就是为什么INSERT_LAST_ID无法正常工作的原因。

<?php
if(isset($_POST['register'])){

    $IP = getIP();
    $username = $_POST['user_name'];
    $email = $_POST['email'];
    $firstname = $_POST['first_name'];
    $secondname = $_POST['second_name'];
    $street= $_POST['street'];
    $town = $_POST['town'];
    $county = $_POST['county'];
    $postcode = $_POST['postcode'];
    $password = $_POST['pass'];
    $userimage = $_FILES['icon']['name'];
    $userimage_tmp = $_FILES['icon']['tmp_name'];



    move_uploaded_file($userimage_tmp,"customer/customer-images/$userimage");

   $insert_address = "insert into address (Street, Town, County, Postcode) values('$street', '$town', '$county', '$postcode')";

    $run_address = mysqli_query($con, $insert_address);

    $update_add = "insert into user(AddressID) values (INSERT_LAST_ID())";

    $insert_user = "insert into user (UserIPAddress, Username, Email, Forename, Surname,  Password, UserIcon) values('$IP', '$username', '$email', '$firstname', '$secondname', '$password', '$userimage')";


    $run_user = mysqli_query($con, $insert_user);



    if($run_user && $run_address){

        echo "<script>alert('Registration User Successful!') </script>";
    }
    else 

        echo "<script>alert('Registration User Not Successful!') </script>";
    }



?>

当我向数据库中添加数据时,AddressID列始终显示null,如果尝试将其设置为非null,则会得到外键约束。

(是的,这段代码非常糟糕,并且可以对SQL Injection广泛使用,除了教育价值之外,我不会将其用于任何其他用途,而是要确保我知道自己在做什么,然后再将任何内容在线!):)

0 个答案:

没有答案