サンプルコードを書いて挙動を確かめてみた。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$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