topic: db (PDO / SQL / マルチDB) / ch07 — fetch のモード / 演習 01
📝 ドリル 01 — fetchAll(PDO::FETCH_ASSOC)
問題
users テーブルを id 昇順で fetchAll(PDO::FETCH_ASSOC) で取得して、
各行を "{id}: {name}" 形式で出力してください。
初期データ:
1: 太郎
2: 花子
3: 次郎
期待される出力:
1: 太郎
2: 花子
3: 次郎
採点
php scripts/grade.php topics/11-db/ch07-fetch-modes/drill/01-fetch-assoc/
ヒント
$stmt = $pdo->query("SELECT id, name FROM users ORDER BY id");$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);foreach ($rows as $row)で回す
テストケース
期待される出力
1: 太郎
2: 花子
3: 次郎
📄 starter.php(雛形)
このコードから書き始めてください。
<?php
$pdo = new PDO('sqlite:' . getenv('DOJO_DB_PATH'));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// TODO: SELECT id, name FROM users ORDER BY id を実行する
// TODO: fetchAll(PDO::FETCH_ASSOC) で全件を連想配列の配列として取得する
// TODO: 各行を "{id}: {name}" の形式で出力する
✅ 解答例を見る(自分で解いてから)
<?php
$pdo = new PDO('sqlite:' . getenv('DOJO_DB_PATH'));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->query("SELECT id, name FROM users ORDER BY id");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {
echo "{$row['id']}: {$row['name']}\n";
}