我需要为每个插入操作获取最后插入的ID并将其放入数组中,我试图看看正确的方法是什么。
关注此帖Which is correct way to get last inserted id in mysqli prepared statements procedural style? 我试图将它应用于我的代码,但我仍然没有得到正确的答案。
textInput:
然后我意识到我正在使用PDO连接,所以显然mysqli函数不会工作。我继续尝试以下
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;
}
但响应仍然是空的?我做错了什么?对于lastInsertId(),我应该从这里使用$ conn或$ statement:
$id = $conn->lastInsertId();
echo "insert id: " . $id;
答案 0 :(得分:0)
您正在根据PDO正确使用lastInsertId():lastInsertId()文档
$statement = $conn->prepare($query);
$statement->execute($rowdata);
$id = $conn->lastInsertId();
导致其失效的一些潜在原因:
希望这有帮助!
答案 1 :(得分:0)
如果您使用的是pdo,
$stmt = $db->prepare("...");
$stmt->execute();
$lastInsId = $db->lastInsertId();