When you use query method, You'll get count right away
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$sth = $dbh->query("SELECT name, colour FROM fruit");
$count = $sth->columnCount();
echo 'query count is '.$count;
?>
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)
PDOStatement::columnCount — 結果セット中のカラム数を返す
PDOStatement オブジェクトに相当する結果セットにあるカラム数を返すために PDOStatement::columnCount() を使用します。
もし PDOStatement オブジェクトが PDO::query() から返された場合、カラム数は直ちに利用可能です。
もし PDOStatement オブジェクトが PDO::prepare() から返された場合、正確なカラム数は PDOStatement::execute() を実行するまで利用可能になりません。
この関数にはパラメータはありません。
PDOStatement オブジェクトに相当する結果セットにあるカラム数を返します。
結果セットが空である場合でも同様です。
もし結果セットがなければ、PDOStatement::columnCount()
は 0
を返します。
PDO::ATTR_ERRMODE
が PDO::ERRMODE_WARNING
に設定されていた場合、E_WARNING
レベルのエラーが発生します。
PDO::ATTR_ERRMODE
が PDO::ERRMODE_EXCEPTION
に設定されていた場合、PDOException がスローされます。
例1 カラム数を数える
この例は、結果セットがある場合とない場合で、 PDOStatement::columnCount() がどのように動作するかを例示しています。
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
/* (存在しない) 結果セットにあるカラム数を数える */
$colcount = $sth->columnCount();
print "Before execute(), result set has $colcount columns (should be 0)\n";
$sth->execute();
/* 結果セットにあるカラム数を数える */
$colcount = $sth->columnCount();
print "After execute(), result set has $colcount columns (should be 2)\n";
?>
上の例の出力は以下となります。
Before execute(), result set has 0 columns (should be 0) After execute(), result set has 2 columns (should be 2)
When you use query method, You'll get count right away
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$sth = $dbh->query("SELECT name, colour FROM fruit");
$count = $sth->columnCount();
echo 'query count is '.$count;
?>