![](/img/trans.png)
[英]Which is correct way to get last inserted id in mysqli prepared statements procedural style?
[英]Get last inserted ID in prepared statement
我需要為每個插入操作獲取最后插入的 ID 並將其放入數組,我想看看正確的做法是什么。
遵循這篇文章在mysqli准備好的語句程序樣式中獲取最后插入的id的正確方法是什么? 我試圖將它應用到我的代碼中,但我仍然沒有得到正確的響應。
if($data->edit_flag == 'ADDED')
{
$rowdata[0] = $data->location_name;
$rowdata[1] = 0;
$rowdata[2] = $data->store_id;
$query = "INSERT IGNORE INTO store_locations (location_name,total_items, store_id) VALUES (?,?,?)";
$statement = $conn->prepare($query);
$statement->execute($rowdata);
$id = mysqli_stmt_insert_id($statement);
echo "inserted id: " . $id;
}
然后我意識到我使用的是 PDO 連接,所以很明顯 mysqli 函數不起作用。 我繼續嘗試以下方法
$id = $conn->lastInsertId();
echo "insert id: " . $id;
但響應仍然是空的? 我做錯了什么? 對於 lastInsertId(),我應該從這里使用 $conn 還是 $statement:
$statement = $conn->prepare($query);
$statement->execute($rowdata);
您正在根據 PDO:lastInsertId() 文檔正確使用 lastInsertId()
$statement = $conn->prepare($query);
$statement->execute($rowdata);
$id = $conn->lastInsertId();
它不起作用的一些潛在原因:
希望這可以幫助!
如果您使用的是 pdo,
$stmt = $db->prepare("...");
$stmt->execute();
$lastInsId = $db->lastInsertId();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.