繁体   English   中英

PDO获取最后插入的“ id”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM