PDO查询(插入和选择)不起作用

时间:2017-03-14 14:35:02

标签: php mysql sql pdo

我正在尝试将数据插入到我的数据库中,并使用相同的预处理语句,我想选择新插入行的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。 但我没有任何错误。

如果我尝试选择任何其他内容,则完全相同。

2 个答案:

答案 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或其他任何你想做的事情