端くれプログラマの備忘録 PHP [PHP] PDO::fetchColumn()でヒット件数を取得する

[PHP] PDO::fetchColumn()でヒット件数を取得する

サンプルコードを書いて挙動を確かめてみた。

サンプルコード

$dsn = "mysql:host=localhost;dbname=pdo_test";
$username = "pdo_test";
$password = "pdo_test";

try {
    $pdo = new PDO($dsn, $username, $password, array(
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,        // 失敗したら例外を投げる
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_CLASS,   //デフォルトのフェッチモードはクラス
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',   //MySQL サーバーへの接続時に実行するコマンド
    ));

    $max_id = 3;
    $stmt = $pdo->prepare('SELECT COUNT(*) FROM posts where id <= :max_id');
    $stmt->bindParam(':max_id', $max_id, PDO::PARAM_STR);
    $stmt->execute();
    echo 'count = ' . $stmt->fetchColumn();
    // count = 3
   
} catch (PDOException $e) {
    echo 'PDO exception: ' . $e->getMessage();
    exit;
}
echo 'Succeeded!';

参考サイト

PHP: PDOStatement::fetchColumn – Manual
http://php.net/manual/ja/pdostatement.fetchcolumn.php