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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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

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


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