topic: db (PDO / SQL / マルチDB) / ch03 — SELECT 基本 / fetchAll / ループ / 演習 01

📝 ドリル 01 — 全件 SELECT して "id: name" 形式で出力

問題

users テーブル (id, name, age) には次の 3 行が入っています。

id name age
1 太郎 20
2 花子 25
3 次郎 30

id の昇順で全件 SELECT し、各行を id: name の形式 (id と name を : で連結) でちょうど 3 行出力してください。

期待される出力:

1: 太郎
2: 花子
3: 次郎

採点

php scripts/grade.php topics/11-db/ch03-select-basic/drill/01-select-all/

ヒント

  • SELECT id, name FROM users ORDER BY id
  • foreach ($pdo->query($sql) as $row) { ... }
  • 出力は echo $row['id'] . ': ' . $row['name'] . "\n";

テストケース

期待される出力

1: 太郎
2: 花子
3: 次郎

📄 starter.php(雛形)

このコードから書き始めてください。

<?php

$pdo = new PDO('sqlite:' . getenv('DOJO_DB_PATH'));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// TODO: users を id 昇順で SELECT し、"id: name" 形式で 1 行ずつ出力する
//   ヒント: foreach ($pdo->query('SELECT id, name FROM users ORDER BY id') as $row) { ... }
✅ 解答例を見る(自分で解いてから)
<?php

$pdo = new PDO('sqlite:' . getenv('DOJO_DB_PATH'));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

foreach ($pdo->query('SELECT id, name FROM users ORDER BY id') as $row) {
    echo $row['id'] . ': ' . $row['name'] . "\n";
}