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

# PDOStatement::columnCount

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::columnCount — 結果セット中のカラム数を返す

### 説明

public function PDOStatement::columnCount(): int

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)

### 参考

- PDO::prepare() - 文を実行する準備を行い、文オブジェクトを返す
- PDOStatement::execute() - プリペアドステートメントを実行する
- PDOStatement::rowCount() - 直近の SQL ステートメントによって作用した行数を返す

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open