PDOは最後に挿入されたIDを取得します 質問する

PDOは最後に挿入されたIDを取得します 質問する

クエリがあり、最後に挿入された ID を取得したいと考えています。フィールド ID は主キーであり、自動的に増分されます。

私はこの声明を使わなければならないことを知っています:

LAST_INSERT_ID()

このステートメントは次のようなクエリで機能します。

$query = "INSERT INTO `cell-place` (ID) VALUES (LAST_INSERT_ID())";

しかし、次のステートメントを使用して ID を取得したい場合:

$ID = LAST_INSERT_ID();

次のエラーが発生します:

Fatal error: Call to undefined function LAST_INSERT_ID()

何が間違っているのでしょうか?

ベストアンサー1

これはPHPではなくSQL関数だからです。PDO::lastInsertId()

のように:

$stmt = $db->prepare("...");
$stmt->execute();
$id = $db->lastInsertId();

PDO API ではなく SQL を使用して実行する場合は、通常の選択クエリと同じように実行します。

$stmt = $db->query("SELECT LAST_INSERT_ID()");
$lastId = $stmt->fetchColumn();

おすすめ記事