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 idforeach ($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";
}