ГлавнаяОтзывы и пожеланияСтатьи
Функции по алфавиту:    a     b     c     d     e     f     g     h     i     j     k     l     m     n     o     p     q     r     s     t     u     v     w     x     y     z  

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() не способна отличить магически добавленные кавычки от кавычек, добавленных преднамеренно.




Другие функции на O:

ob_end_clean
ob_get_contents
ob_get_length
ob_get_level
ob_gzhandler
ob_iconv_handler
ob_implicit_flush
OCICancel
OCICollAppend
OCICollGetElem
OCICollSize
OCICollTrim
OCIColumnName
OCIColumnScale
OCIColumnSize
OCIColumnType
OCIColumnTypeRaw
OCICommit
OCIError
OCIExecute
OCIFreeCollection
OCIFreeCursor
OCIFreeDesc
OCIInternalDebug
OCILoadLob
OCILogOff
OCILogon
OCINewCursor
OCINewDescriptor
OCINLogon
OCIParse
OCIPLogon
OCIResult
OCIRowCount
OCISaveLob
OCISetPrefetch
octdec
odbc_autocommit
odbc_binmode
odbc_close_all
odbc_columnprivileges
odbc_columns
odbc_commit
odbc_cursor
odbc_do
odbc_execute
odbc_fetch_array
odbc_fetch_row
odbc_field_scale
odbc_field_type
odbc_free_result
odbc_gettypeinfo
odbc_next_result
odbc_pconnect
odbc_procedurecolumns
odbc_result
odbc_rollback
odbc_setoption
odbc_specialcolumns
odbc_statistics
opendir
openlog
openssl_csr_export
openssl_csr_export_to_file
openssl_error_string
openssl_free_key
openssl_get_privatekey
openssl_pkcs7_decrypt
openssl_pkcs7_encrypt
openssl_pkcs7_verify
openssl_pkey_export
openssl_pkey_export_to_file
openssl_private_encrypt
openssl_public_decrypt
openssl_public_encrypt
openssl_seal
openssl_x509_checkpurpose
openssl_x509_check_private_key
openssl_x509_export
openssl_x509_free
openssl_x509_parse
Ora_Close
Ora_ColumnType
Ora_CommitOn
Ora_Do
Ora_Error
Ora_ErrorCode
Ora_Fetch
Ora_GetColumn
Ora_Logoff
Ora_Logon
Ora_Numcols
Ora_Open
Ora_Parse
Ora_pLogon
Ora_Rollback
ord
overload
ovrimos_close
ovrimos_commit
ovrimos_cursor
ovrimos_exec
ovrimos_field_len
ovrimos_field_num
ovrimos_field_type
ovrimos_free_result
ovrimos_num_fields
ovrimos_num_rows
ovrimos_result
ovrimos_result_all


EXPERTGS.ru описание функций php.