Forum und email

oci_define_by_name

(PHP 5, PECL oci8:1.1-1.2.4)

oci_define_by_name — Определяет переменную PHP, в которую будет возвращено соответствующее поле из результата

Описание

bool oci_define_by_name ( resource $stmt , string $column_name , mixed $&variable [, int $type ] )

oci_define_by_name() назначает переменную PHP, которая будет использована, как получатель результата выполнения выборки.

Note: Не забывайте о том, что Oracle всегда возвращает имена полей в ВЕРХНЕМ регистре (если, конечно, вы не используете синтаксис 'SELECT field_name "field_name" FROM table_name'). Поэтому oci_define_by_name() обычно ожидает параметр column_name в верхнем регистр. Заметьте, что эта функция не возвратит ошибку, если соответствующее поле будет отсутствовать в результате выборки.

Если вам нужно назначить переменную абстрактного дипа данных (LOB/ROWID/BFILE), то ее необходимо сначала создать с помощью oci_new_descriptor(). См. также oci_bind_by_name().

Example#1 Пример использования oci_define_by_name()

<?php
/* oci_define_by_name example - thies at thieso dot net (980219) */

$conn oci_connect("scott""tiger");

$stmt oci_parse($conn"SELECT empno, ename FROM emp");

/* the define MUST be done BEFORE ociexecute! */

oci_define_by_name($stmt"EMPNO"$empno);
oci_define_by_name($stmt"ENAME"$ename);

oci_execute($stmt);

while (
oci_fetch($stmt)) {
    echo 
"empno:" $empno "\n";
    echo 
"ename:" $ename "\n";
}

oci_free_statement($stmt);
oci_close($conn);
?>

Note: В версиях PHP ниже 5.0.0 эта функция называлась ocidefinebyname(). В PHP 5.0.0 и выше ocidefinebyname() является алиасом oci_define_by_name(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.