获取最后插入行的主键 ID 以运行多个插入操作 [重复]
Posted
技术标签:
【中文标题】获取最后插入行的主键 ID 以运行多个插入操作 [重复]【英文标题】:Getting the primary key ID of the last inserted row to run multiple insert operations [duplicate] 【发布时间】:2018-02-07 08:27:12 【问题描述】:我必须一个接一个地运行多个INSERT
语句,但我需要检索其间最后插入的行的主键,以便在下一个INSERT
语句中使用。我知道我可以用SELECT LAST_INSERT_ID();
做到这一点,但我不太确定如何在我的代码中使用它来存储在 php 变量中。
function addItem($name, $category, $rating, $user)
$pdo = Database::connect();
$sql = "INSERT INTO items (id, category, api, name, api_id) VALUES ('', '". $category ."', '', '". $name ."', '')";
$pdo->query($sql);
// $item_id = ???
$sql = "INSERT INTO ratings (id, user, item, rating) VALUES ('', '". $user ."', '". $item_id ."', '". $rating ."')";
$pdo->query($sql);
Database::disconnect();
【问题讨论】:
PDO 方法的文档显示:php.net/manual/en/pdo.lastinsertid.php 如果您的主键列设置为自动递增,则无需在插入查询中添加它 在这里试试***.com/questions/1685860/… 【参考方案1】:你可以像这样使用 PDO 的 lastInsertId
方法
$item_id = $pdo->lastInsertId();
http://php.net/manual/en/pdo.lastinsertid.php
【讨论】:
【参考方案2】:试试这个:
function addItem($name, $category, $rating, $user)
$pdo = Database::connect();
$sql = "INSERT INTO items (id, category, api, name, api_id) VALUES ('', '". $category ."', '', '". $name ."', '')";
$pdo->query($sql);
// $item_id = ???
$item_id = $pdo->lastInsertId();
$sql = "INSERT INTO ratings (id, user, item, rating) VALUES ('', '". $user ."', '". $item_id ."', '". $rating ."')";
$pdo->query($sql);
Database::disconnect();
【讨论】:
以上是关于获取最后插入行的主键 ID 以运行多个插入操作 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如果我的主键不自动递增,如何使用 PHP 获取最后插入的 ID