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 запроса.

Возвращаемые значения

Возвращает число затронутых строк в виде integer, либо 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(). В 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
24 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