[英]PDO Get Last Inserted 'id'
我尝试了其他一些答案,但似乎没有任何效果。 这是我在做什么:
try {
$dbo = new PDO("dblib:host=127.0.0.1;dbname=db","user","password");
} catch (PDOException $e) {
die($e->getMessage());
}
$sql = "INSERT INTO table (name, address) values (:name,:address)";
$insert = $dbo->prepare($sql);
$insert->execute(array('name'=>'name val', 'address'=>'address val'));
echo $insert->lastInsertId();
插入了行,但是当我想要的是列“ ID”的值时,我总是得到一个空白值。 我该怎么办?
您做得差不多。
$sql = "INSERT INTO table (name, address) values (:name,:address)";
$insert = $dbo->prepare($sql);
$insert
字段是可执行的语句,而不是PDO驱动程序。 那是另一个例子。 执行后,您可以请求最后插入的ID。 但是您必须使用驱动程序对象而不是语句来调用此方法。
$dbo->lastInsertId();
使用此语句,您要求PDO驱动程序返回您已在表中插入的行的ID。
另外,添加$dbo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
右后连接以获得它为什么失败的真正原因。
请确保您的表具有带有AUTO_INCREMENT的“ id”列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.