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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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

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


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