topic: db (PDO / SQL / マルチDB) / ch03 — SELECT 基本 / fetchAll / ループ / 演習 02
📝 ドリル 02 — 件数を出力
問題
users テーブルの行数を SELECT COUNT(*) で取得し、その数字をちょうど 1 行で出力してください。
users には 3 行入っています (前の drill と同じデータ)。
期待される出力:
3
採点
php scripts/grade.php topics/11-db/ch03-select-basic/drill/02-count-rows/
ヒント
SELECT COUNT(*) AS cnt FROM users- 1 行 1 列だけ返るので
$stmt->fetch(PDO::FETCH_ASSOC)で 1 行だけ取り出す echo $row['cnt'] . "\n";
テストケース
期待される出力
3
📄 starter.php(雛形)
このコードから書き始めてください。
<?php
$pdo = new PDO('sqlite:' . getenv('DOJO_DB_PATH'));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// TODO: COUNT(*) で users の行数を取得して出力する
// ヒント:
// $stmt = $pdo->query('SELECT COUNT(*) AS cnt FROM users');
// $row = $stmt->fetch(PDO::FETCH_ASSOC);
// echo $row['cnt'] . "\n";
✅ 解答例を見る(自分で解いてから)
<?php
$pdo = new PDO('sqlite:' . getenv('DOJO_DB_PATH'));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->query('SELECT COUNT(*) AS cnt FROM users');
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo $row['cnt'] . "\n";