П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3522 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6121 раз(а).

Учебник HTML.
Просмотров 3276 раз(а).

Руководство по PHP5.
Просмотров 5497 раз(а).

Хостинг через призму DNS.
Просмотров 4145 раз(а).

Подборка текстов стандартных документов.
Просмотров 55773 раз(а).

Учебник PHP - Самоучитель
Просмотров 3092 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 5736 раз(а).

Внешние атаки...
Просмотров 3841 раз(а).

Учебник PHP.
Просмотров 2825 раз(а).

SSI в примерах.
Просмотров 37463 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Учебник РНР
Назад Вперёд

OCIBindByName

(PHP 3>= 3.0.4, PHP 4)

OCIBindByName - связывает PHP-переменную с Oracle Placeholder/заглушкой.

Описание

int OCIBindByName (int stmt, string ph_name, mixed & variable, int length [, int type])

OCIBindByName() связывает PHP-переменную variable с Oracle-заглушкой ph_name. Использование её для вывода или ввода определяется на этапе прогона, и выделяется необходимое пространство для хранения. Параметр length устанавливает максимальный размер связки. Если вы устанавливаете length в -1, OCIBindByName() будет использовать текущий размер переменной variable для установки максимального размера.

Если вам нужно связать абстрактный Datatype (LOB/ROWID/BFILE), вы должны сначала разместить его с использованием OCINewDescriptor().
length не используется для абстрактных типов данных/Datatypes и должен быть установлен в -1. Переменная type говорит Оracle, какой тип дескриптора мы хотим использовать. Возможные значения: OCI_B_FILE (Binary-File), OCI_B_CFILE (Character-File), OCI_B_CLOB (Character-LOB), OCI_B_BLOB (Binary-LOB) и OCI_B_ROWID (ROWID).

Пример 1. OCIDefineByName
<?php
/* пример OCIBindByPos thies@thieso.net (980221)
  вставляются 3 записи в emp и используется ROWID для обновления
  записей сразу после вставки.
*/

$conn = OCILogon("scott","tiger");

$stmt = OCIParse($conn,"insert into emp (empno, ename) ".
					   "values (:empno,:ename) ".
					   "returning ROWID into :rid");

$data = array(1111 => "Larry", 2222 => "Bill", 3333 => "Jim");

$rowid = OCINewDescriptor($conn,OCI_D_ROWID);

OCIBindByName($stmt,":empno",&$empno,32);
OCIBindByName($stmt,":ename",&$ename,32);
OCIBindByName($stmt,":rid",&$rowid,-1,OCI_B_ROWID);

$update = OCIParse($conn,"update emp set sal = :sal where ROWID = :rid");
OCIBindByName($update,":rid",&$rowid,-1,OCI_B_ROWID);
OCIBindByName($update,":sal",&$sal,32);

$sal = 10000;

while (list($empno,$ename) = each($data)) {
	OCIExecute($stmt);
	OCIExecute($update);
} 

$rowid->free();

OCIFreeStatement($update);
OCIFreeStatement($stmt);

$stmt = OCIParse($conn,"select * from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
while (OCIFetchInto($stmt,&$arr,OCI_ASSOC)) {
	var_dump($arr);
}
OCIFreeStatement($stmt);

/* удаляет нашу "junk" из таблицы emp ... */
$stmt = OCIParse($conn,"delete from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
OCIFreeStatement($stmt);

OCILogoff($conn);
?>

Предупреждение!

Одновременное использование магических кавычек и OciBindByName() это плохая идея, так как закавычивание не нужно для закавыченных переменных, а любые кавычки, применённые магически, будут записаны в вашу базу данных, поскольку OciBindByName() не способна отличить магически добавленные кавычки от кавычек, добавленных преднамеренно.


Назад Оглавление Вперёд
Функции Oracle 8 ВверхOCICancel


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту: