PDOStatement::columnCount

結果セット中のカラム数を返す

説明

public int PDOStatement::columnCount()

PDOStatement オブジェクトに相当する結果セットにあるカラム数を返すために PDOStatement::columnCount を使用します。

もし PDOStatement オブジェクトが PDO::query から返された場合、カラム数は直ちに利用可能です。

もし PDOStatement オブジェクトが PDO::prepare から返された場合、正確なカラム数は PDOStatement::execute を実行するまで利用可能になりません。

パラメータ

この関数にはパラメータはありません。

戻り値

PDOStatement オブジェクトに相当する結果セットにあるカラム数を返します。 結果セットが空である場合でも同様です。 もし結果セットがなければ、 PDOStatement::columnCount0 を返します。

エラー / 例外

PDO::ATTR_ERRMODEPDO::ERRMODE_WARNING に設定されていた場合、E_WARNING レベルのエラーが発生します。

PDO::ATTR_ERRMODEPDO::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)

参考

  • PDO::prepare
  • PDOStatement::execute
  • PDOStatement::rowCount