我必须一个接一个地运行多个 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的lastInsertId
方法
$item_id = $pdo->lastInsertId();
http://php.net/manual/en/pdo.lastinsertid.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 = ???
$item_id = $pdo->lastInsertId();
$sql = "INSERT INTO ratings (id, user, item, rating) VALUES ('', '". $user ."', '". $item_id ."', '". $rating ."')";
$pdo->query($sql);
Database::disconnect();
}