PHP 8.4.1 Released!

oci_num_fields

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

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

説明

oci_num_fields(resource $statement): int

指定した文 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($stid, OCI_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);

?>

add a note

User Contributed Notes 1 note

up
0
jnield at impole dot com
25 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