簡體   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