topic: db (PDO / SQL / マルチDB) / ch05 — INSERT で 1 件追加する / 演習 02
📝 ドリル 02 — lastInsertId を出力
問題
users テーブルに 新人 (22 歳) を 1 件追加してから、
自動採番された ID を "追加したIDは {id}" の形で出力してください。
初期データは 太郎 (id=1) と 花子 (id=2) の 2 件なので、
追加した行の ID は 3 になるはず。
期待される出力:
追加したIDは 3
採点
php scripts/grade.php topics/11-db/ch05-insert/drill/02-insert-with-lastid/
ヒント
- INSERT は
prepare+execute([...])で実行 - INSERT 直後に
$pdo->lastInsertId()を呼ぶと自動採番された ID が取れる
テストケース
期待される出力
追加したIDは 3
📄 starter.php(雛形)
このコードから書き始めてください。
<?php
$pdo = new PDO('sqlite:' . getenv('DOJO_DB_PATH'));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// TODO: users テーブルに '新人' (22 歳) を 1 件 INSERT する
// TODO: lastInsertId で自動採番された ID を取得し
// "追加したIDは {id}" の形式で出力する
✅ 解答例を見る(自分で解いてから)
<?php
$pdo = new PDO('sqlite:' . getenv('DOJO_DB_PATH'));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare("INSERT INTO users (name, age) VALUES (?, ?)");
$stmt->execute(['新人', 22]);
$id = $pdo->lastInsertId();
echo "追加したIDは {$id}\n";