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