我有两个表,分别称为地址和用户。它们使用来自网页的用户提交的数据正确填充,但是我希望用户表中的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广泛使用,除了教育价值之外,我不会将其用于任何其他用途,而是要确保我知道自己在做什么,然后再将任何内容在线!):)