PHP Unconference Europe 2015

oci_num_fields

(PHP 5, PECL OCI8 >= 1.1.0)

oci_num_fieldsある文における結果のカラム数を返す

説明

int oci_num_fields ( resource $statement )

指定した文 statement におけるカラムの数を返します。

パラメータ

statement

有効な OCI ステートメント ID。

返り値

カラムの数を表す整数値、あるいはエラー時に FALSE を返します。

例1 oci_num_fields() の例

<?php

// 以下のテーブルを用意します
//   CREATE TABLE mytab (id NUMBER, quantity NUMBER);

$conn oci_connect("hr""hrpwd""localhost/XE");
if (!
$conn) {
    
$m oci_error();
    
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid oci_parse($conn"SELECT * FROM mytab");
oci_execute($stidOCI_DESCRIBE_ONLY); // 行をフェッチしない場合は OCI_DESCRIBE_ONLY を使います

$ncols oci_num_fields($stid);
for (
$i 1$i <= $ncols$i++) {
    echo 
oci_field_name($stid$i) . " " oci_field_type($stid$i) . "<br>\n";
}

// 出力は
//    ID NUMBER
//    QUANTITY NUMBER

oci_free_statement($stid);
oci_close($conn);

?>

注意

注意:

PHP バージョン 5.0.0 以前では、代わりに ocinumcols() を使用しなければなりません。 まだこの名前を使用することができ、下位互換性のため oci_num_fields() への別名として残されていますが、 推奨されません。

add a note add a note

User Contributed Notes 1 note

up
0
jnield at impole dot com
14 years ago
The following is not immediately obvious:

If you need the number of columns in a REF CURSOR returned from a PL/SQL procedure, you need to use OCINumColumns() on the cursor handle returned by OCINewCursor after it is bound and executed, not the statement handle. Same applies for OCIColumnName() and friends.
To Top