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";