gpt4 book ai didi

php - INSERT INTO & LAST_INSERT_ID inside Query inside 函数

转载 作者:搜寻专家 更新时间:2023-10-31 21:26:21 26 4
gpt4 key购买 nike

背景:这是我第一次在这里发布问题,但我从阅读他人的问题和答案中学到了很多东西,非常感谢您的所有帮助!我花了几个小时研究这个问题,但找不到适合我的解决方案。下面的示例来自 MySQL website到目前为止,似乎是最可靠的。

目标:最终,我想将注册表单(目前为 foo)数据库中的用户 ID 链接到其他数据库(目前为 foo2)。我想我了解 INSERT INTO 和 LAST_INSERT_ID 并尝试了我在这里阅读的许多示例。假设我的代码是正确的(它可能不正确),我认为我的问题是关于该区域之外的语法和代码(整个函数 createRows)。我需要两个 $query 还是只需要一个?我见过的许多示例都没有显示查询部分或代码,只显示 INSERT INTO 语句,而这正是我需要看到的。

问题:我运行这段代码,但没有收到任何错误。然而,数据只进入表 foo2,完全跳过/绕过表 foo,它仍然是完全空的。

function createRows(){
if (isset($_POST['submit'])) {
global $connection;
$text = $_POST['text'];

$query = "INSERT INTO foo (id,text) VALUES(NULL,'$text')";
$query = "INSERT INTO foo2 (id,text) VALUES(LAST_INSERT_ID(),'$text')";

$result = mysqli_query($connection, $query);
if (!$result) {
die('Query FAILED' . mysqli_error($connection));
} else {
echo "Success! New record created.";
}
}
}

最佳答案

用这个改变你的代码:

function createRows(){
if (isset($_POST['submit'])) {
global $connection;
$text = $_POST['text'];

$query = "INSERT INTO foo (id,text) VALUES(NULL,'$text')";

$result = mysqli_query($connection, $query);
if (!$result) {
die('Query FAILED' . mysqli_error($connection));
} else {
$last = mysqli_insert_id($connection);
$query1 = "INSERT INTO foo2 (id,text) VALUES($last,'$text')";
mysqli_query($connection, $query1);
echo "Success! New record created.";
}
}
}

此外,我对您的第一个查询感到困惑。为什么要在 id 字段中插入 null 值?如果您的 id 是主键,那么它不应该为 null。此外,如果您为其分配了自动增量,那么您不需要在其中插入 null 值。在这种情况下,您的第一个查询将是:

"INSERT INTO foo (text) VALUES('$text')";

Side note : Your query is unsafe. Read this How can I prevent SQL injection in PHP?.

关于php - INSERT INTO & LAST_INSERT_ID inside Query inside 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35395011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com