【发布时间】:2017-03-14 14:35:02
【问题描述】:
我正在尝试将数据插入到我的数据库中,并且我想使用相同的准备好的语句来选择新插入行的 id。
因此我使用以下代码:
$stmt = $pdo->prepare("INSERT INTO questions (question) VALUES (:question1), (:question2); SELECT @@IDENTITY as 'currentID';");
if ($stmt -> execute(array(":question1" => $_POST["question1"], ":question2" => $_POST["question2"]))) {
$row = $stmt->fetch();
echo $row["currentID"]; //doesn't output anything
echo "hey"; //gets outputted
}
使用 phpMyAdmin 并在那里输入代码可以正常工作。但是使用我的 PHP 脚本,它会插入数据,但不会返回 currentID。 但我没有收到任何错误。
如果我尝试选择其他任何内容,则完全相同。
【问题讨论】:
-
VALUES (:question1), (:question2); -
@Fred-ii- 正如我所说,我没有收到任何错误消息。并且插入选择命令与我正在寻找的不同。如果没有分号,它根本不起作用,我会收到一条错误消息。
-
您应该向您的连接询问最后一个插入 ID (
$id = $pdo->lastInsertID()),然后根据该结果构建一个选择查询。或者你可以直接echo $id看看那个 ID 是什么。 -
@Chris1 您使用的是什么数据库? @@identity 似乎不是很 mysql。