OCIDefineByName - использует PHP-переменную для define-этапа при выполнении SELECT.
Описание
int OCIDefineByName (int stmt, string Column-Name, mixed variable [, int type])
OCIDefineByName() связывает PHP-переменные для извлечения SQL-столбцов. Не забывайте, что Oracle
использует имена столбцов ALL-UPPERCASE, в то время как в вашем select вы можете также записывать в нижнем регистре.
OCIDefineByName() ожидает, что Column-Name будет в верхнем регистре. Если вы определяете переменную, которая не
существует в вашем операторе select, ошибка не будет выдана!
Если вам нужно определить абстрактный тип данных (LOB/ROWID/BFILE), его
нужно сначала разместить с помощью OCINewDescriptor(). См. также OCIBindByName().
Пример 1. OCIDefineByName
<?php
/* пример OCIDefineByName - thies@thieso.net (980219) */
$conn = OCILogon("scott","tiger");
$stmt = OCIParse($conn,"select empno, ename from emp");
/* это определение ОБЯЗАНО быть сделано ДО ociexecute! */
OCIDefineByName($stmt,"EMPNO",$empno);
OCIDefineByName($stmt,"ENAME",$ename);
OCIExecute($stmt);
while (OCIFetch($stmt)) {
echo "empno:".$empno."
";
echo "ename:".$ename."
";
}
OCIFreeStatement($stmt);
OCILogoff($conn);
?>