我想在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);
}
?>
答案 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));
}
<强>密码强>
我还注意到您可能以纯文本格式存储密码。不建议这样做。
使用以下其中一项:
crypt()
bcrypt()
scrypt()
password_hash()
功能。其他链接:
关于列长的重要说明:
如果您决定使用password_hash()
或兼容包(如果PHP <5.5)https://github.com/ircmaxell/password_compat/,请务必注意,如果您当前的密码列的长度低于60 ,它需要更改为(或更高)。手册建议长度为255。
您需要更改列的长度并重新开始使用新哈希才能使其生效。否则,MySQL将无声地失败。