获取最后插入的行的主键ID以运行多个插入操作

时间:2017-08-29 19:04:04

标签: php mysql

我必须一个接一个地运行多个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();
}

2 个答案:

答案 0 :(得分:1)

您可以像这样使用PDO的$ ./test � - ffffff92/92 方法

lastInsertId

http://php.net/manual/en/pdo.lastinsertid.php

答案 1 :(得分:1)

试试这个:

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();
}
相关问题