【问题标题】:Getting the primary key ID of the last inserted row to run multiple insert operations [duplicate]获取最后插入行的主键 ID 以运行多个插入操作 [重复]
【发布时间】: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();
}

【问题讨论】:

标签: php mysql


【解决方案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();
    }
    

    【讨论】:

      猜你喜欢
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 2011-05-26
      • 1970-01-01
      相关资源
      最近更新 更多