OCINewDescriptor
(PHP 3>= 3.0.7, PHP 4)
OCINewDescriptor - инициализирует новый пустой LOB или FILE-дескриптор. Описание
string OCINewDescriptor (int connection [, int type]) OCINewDescriptor() выделяет место для хранения дескрипторов или LOB-локаторов. Правильными
значениями для type являются OCI_D_FILE, OCI_D_LOB, OCI_D_ROWID.
Для LOB-дескрипторов методы load, save и savefile ассоциированы с этим дескриптором, для BFILE имеется только метод load. См. примечания по
использованию во втором примере.
Пример 1. OCINewDescriptor<?php
/* Это скрипт разработан для вызова из HTML-формы.
* Он ожидает, что ему будут переданы из формы $user, $password, $table, $where
* и $commitsize. Затем скрипт удаляет выбранные ряды
* с использованием ROWID и подтверждает после каждой установки
* $commitsize-рядов. (Используйте осторожно, отката нет)
*/
$conn = OCILogon($user, $password);
$stmt = OCIParse($conn,"select rowid from $table $where");
$rowid = OCINewDescriptor($conn,OCI_D_ROWID);
OCIDefineByName($stmt,"ROWID",&$rowid);
OCIExecute($stmt);
while ( OCIFetch($stmt) ) {
$nrows = OCIRowCount($stmt);
$delete = OCIParse($conn,"delete from $table where ROWID = :rid");
OCIBindByName($delete,":rid",&$rowid,-1,OCI_B_ROWID);
OCIExecute($delete);
print "$nrows
";
if ( ($nrows % $commitsize) == 0 ) {
OCICommit($conn);
}
}
$nrows = OCIRowCount($stmt);
print "$nrows deleted...
";
OCIFreeStatement($stmt);
OCILogoff($conn);
?> |
<?php
/* Этот скрипт демонстрирует загрузку файлов в LOB-столбцы
* Поле формы для этого примера выглядит так:
* <form action="upload.php" method="post" enctype="multipart/form-data">
* <input type="file" name="lob_upload">
* ...
*/
if(!isset($lob_upload) || $lob_upload == `none`){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload"><br>
<input type="submit" value="Upload"> - <input type="reset">
</form>
<?php
} else {
// $lob_upload содержит временное имя загружаемого файла.
// См. также раздел возможностей загрузки файлов,
// если вам нужно использовать безопасную загрузку.
$conn = OCILogon($user, $password);
$lob = OCINewDescriptor($conn, OCI_D_LOB);
$stmt = OCIParse($conn,"insert into $table (id, the_blob)
values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
OCIBindByName($stmt, `:the_blob`, &$lob, -1, OCI_B_BLOB);
OCIExecute($stmt, OCI_DEFAULT);
if($lob->savefile($lob_upload)){
OCICommit($conn);
echo "Blob successfully uploaded
";
}else{
echo "Couldn`t upload Blob
";
}
OCIFreeDesc($lob);
OCIFreeStatement($stmt);
OCILogoff($conn);
}
?> |
|
Пример 2. OCINewDescriptor<?php
/* Вызывается хранимые процедуры PL/SQL, содержащие clobs в качестве
* параметров ввода (PHP 4 >= 4.0.6).
* Пример подписи хранимой процедуры PL/SQL выглядит так:
*
* PROCEDURE save_data
* Имя аргумента Тип In/Out Default?
* ------------------------------ ----------------------- ------ --------
* KEY NUMBER(38) IN
* DATA CLOB IN
*
*/
$conn = OCILogon($user, $password);
$stmt = OCIParse($conn, "begin save_data(:key, :data); end;");
$clob = OCINewDescriptor($conn, OCI_D_LOB);
OCIBindByName($stmt, `:key`, $key);
OCIBindByName($stmt, `:data`, $clob, -1, OCI_B_CLOB);
$clob->WriteTemporary($data);
OCIExecute($stmt, OCI_DEFAULT);
OCICommit($conn);
$clob->close();
$clob->free();
OCIFreeStatement($stmt);
?> |
|
| | Другие функции на O:
ob_end_clean ob_get_contents ob_get_length ob_get_level ob_gzhandler ob_iconv_handler ob_implicit_flush OCIBindByName OCICancel OCICollAppend OCICollGetElem OCICollSize OCICollTrim OCIColumnName OCIColumnScale OCIColumnSize OCIColumnType OCIColumnTypeRaw OCICommit OCIError OCIExecute OCIFreeCollection OCIFreeCursor OCIFreeDesc OCIInternalDebug OCILoadLob OCILogOff OCILogon OCINewCursor 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
|