使用PHP在单独的表中插入mysqli_insert_id

时间:2016-04-25 00:06:10

标签: php mysql

我想在table1中提交具有AUTO_INCREMENT id的新注册用户,同时插入mysqli_insert_id或LAST_INSERT_ID,你想在table2中调用它。我可以回复id,但我需要在table2中。我怎么能做到这一点?请帮忙!
这是我的参考代码:

<?php

if(isset($_POST['submit'])) {

require 'connect.php';

$sql = "INSERT INTO table1 (username, password) 
     VALUES ('".$_POST["username"]."','".$_POST["password"]."')";

if (mysqli_query($con, $sql)) {
   $last_id = mysqli_insert_id($con);
     echo "New record created successfully. Last inserted ID is: " . $last_id;
} else {
     echo "Error: " . $sql . "<br>" . mysqli_error($con);
}
mysqli_close($con);
}

?>

1 个答案:

答案 0 :(得分:2)

使用(成功)查询中最后插入的id中的变量INSERT到另一个表中。

这是一个粗略的草图,因为我们不知道你的第二个表格的数据库模式是什么,并且很不清楚,所以你需要做(填写)其余的。

if (mysqli_query($con, $sql)) {
   $last_id = mysqli_insert_id($con);
     echo "New record created successfully. Last inserted ID is: " . $last_id;

     $sql = mysqli_query($con, "INSERT INTO table2 (col) VALUES ('$last_id')")
            or die(mysqli_error($con));
}

<强>密码

我还注意到您可能以纯文本格式存储密码。不建议这样做。

使用以下其中一项:

其他链接:

关于列长的重要说明:

如果您决定使用password_hash()或兼容包(如果PHP <5.5)https://github.com/ircmaxell/password_compat/,请务必注意,如果您当前的密码列的长度低于60 ,它需要更改为(或更高)。手册建议长度为255。

您需要更改列的长度并重新开始使用新哈希才能使其生效。否则,MySQL将无声地失败。