クエリがあり、最後に挿入された 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();