![](/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.