我正在尝试将数据插入到我的数据库中,并使用相同的预处理语句,我想选择新插入行的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。 但我没有任何错误。
如果我尝试选择任何其他内容,则完全相同。
答案 0 :(得分:0)
与数据库控制台不同,在PHP中,您正在针对数据库逐个运行查询 所以你应该这样做:
$stmt = $pdo->prepare("INSERT INTO questions (question) VALUES (:question1), (:question2)");
$stmt -> execute(array(":question1" => $_POST["question1"], ":question2" => $_POST["question2"]));
$stmt = $pdo->query("SELECT @@IDENTITY as 'currentID'");
$row = $stmt->fetch();
echo $row["currentID"];
你应该做同样的尝试选择其他任何东西。
答案 1 :(得分:0)
$stmt = $pdo->prepare("INSERT INTO questions (question1, question2) VALUES (:question1), (:question2)");
if ($stmt -> execute(array(":question1" => $_POST["question1"], ":question2" => $_POST["question2"]))) {
$id = $pdo->lastInsertID();
echo $id;
}
从那里,你可以继续建立一个选择(SELECT * from question where id = $id
或其他任何你想做的事情