ГлавнаяОтзывы и пожеланияСтатьи
Функции по алфавиту:    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  

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


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