Новые книги

Тот факт, что умение работать на компьютере сегодня необходимо всем и каждому, не вызывает сомнений даже у скептиков.

Книга, которую вы держите в руках, будет настоящим другом и помощником для тех, кто желает самостоятельно и в короткие сроки освоить премудрости работы на персональном компьютере. Написанная простым и понятным языком, она доступна и легка даже для новичков. Большое количество конкретных примеров и наглядных иллюстраций способствует быстрому и легкому усвоению предлагаемого материала.

Его последовательное изложение, а также подробное пошаговое описание ключевых операций и процедур превращают изучение данной книги в увлекательный процесс, результатом которого будет умение общаться на «ты» с любым современным компьютером.

Описание построено на примере системы Windows XP Professional.
Эта книга о современных интерактивных коммуникациях с потребителями обладает отличным балансом теории и практики (что неудивительно: ее автор работает в успешном агентстве интерактивного маркетинга «Редкая марка» и руководит игровым направлением «Яндекса»). Здесь вы найдете универсальные советы по игровому решению разнообразных маркетинговых задач и более 200 ярких примеров, дающих простор для воображения и новых идей. Известно, что только игра способна полностью завладеть вниманием человека. Играйте с клиентами и потребителями, если хотите быть первым!

Вам необходимо иметь под рукой эту книгу, если ваша деятельность связана с маркетингом и развитием бизнеса: если вы генеральный директор, директор по развитию бизнеса, директор по маркетингу, руководитель подразделения маркетинга и рекламы, продаж, бренд-менеджер, представитель рекламного, PRBTL-агентства или консультационной компании.

Бонус: каждый читатель сможет получить не только новые идеи, но и материальные призы, если разгадает зашифрованные послания.

OCIBindByName

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

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 [email protected] (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