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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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

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\n";
       if ( ($nrows % $commitsize) == 0 ) {
           OCICommit($conn);      
       }   
    }
    $nrows = OCIRowCount($stmt);   
    print "$nrows deleted...\n";
    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\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     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);
?>

Назад Оглавление Вперёд
OCINewCursor ВверхOCINLogon


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