我编写代码在MySql表中插入新记录。有没有什么办法可以在不进行新查询的情况下获取插入的行id
?
try {
$NEWData = $DBH->prepare("
INSERT INTO boge
(name, grade, school, made, type)
VALUES (:name, :grade, :school, NOW(), '2')"
);
$NEWData->bindParam(':name', $navn); // Erik
$NEWData->bindParam(':grade', $skid); // 12
$NEWData->bindParam(':school', $klasseId); // 1 - school have an id
// wants to get the new rows id
$NEWData->execute();
} catch(PDOException $e) {
echo $e->getMessage();
exit();
}
答案 0 :(得分:0)
您可以使用pdo函数lastInsertId http://php.net/manual/en/pdo.lastinsertid.php
同样在某些数据库引擎中,您可以在INSERT INTO之后添加“返回id”,但PDO方式将始终有效。
答案 1 :(得分:0)
试试这个:
$last_insert_id = $DBH->lastInsertId();
echo "<p>$last_insert_id</p>";
答案 2 :(得分:0)
使用lastInsertId可能会对高流量网站产生轻微问题。 这是一个更有效的解决方案:
// wants to get the new rows id
$insert = $NEWData->execute();
$lastId = $insert->insertId();
这使您能够以最高精度获得正确的插入ID。