Comunitatea PHP Romania
 

 
oci_new_descriptor

oci_new_descriptor

(PHP 5)

oci_new_descriptor -- Initializes a new empty LOB or FILE descriptor

Description

object oci_new_descriptor ( resource connection [, int type])

oci_new_descriptor() allocates resources to hold descriptor or LOB locator. Valid values for type are: OCI_D_FILE, OCI_D_LOB and OCI_D_ROWID.

Exemplu 1. oci_new_descriptor() example

<?php   
    
/* This script is designed to be called from a HTML form.
     * It expects $user, $password, $table, $where, and $commitsize
     * to be passed in from the form.  The script then deletes
     * the selected rows using the ROWID and commits after each
     * set of $commitsize rows. (Use with care, there is no rollback)
     */
    
$conn = oci_connect($user, $password);
    
$stmt = oci_parse($conn, "select rowid from $table $where");
    
$rowid = oci_new_descriptor($conn, OCI_D_ROWID);
    
oci_define_by_name($stmt, "ROWID", $rowid);   
    
oci_execute($stmt);
    while (
oci_fetch($stmt)) {
       
$nrows = oci_num_rows($stmt);
       
$delete = oci_parse($conn, "delete from $table where ROWID = :rid");
       
oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID);
       
oci_execute($delete);      
       echo
"$nrows\n";
       if ((
$nrows % $commitsize) == 0) {
           
oci_commit($conn);      
       }   
    }
    
$nrows = oci_num_rows($stmt);   
    echo
"$nrows deleted...\n";
    
oci_free_statement($stmt);  
    
oci_close($conn);
?>
<?php
    
/* This script demonstrates file upload to LOB columns
     * The formfield used for this example looks like this
     * <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" value="Reset" />
</form>
<?php
  
} else {

     
// $lob_upload contains the temporary filename of the uploaded file

     // see also the features section on file upload,
     // if you would like to use secure uploads
     
     
$conn = oci_connect($user, $password);
     
$lob = oci_new_descriptor($conn, OCI_D_LOB);
     
$stmt = oci_parse($conn, "insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob"
);
     
oci_bind_by_name($stmt, ':the_blob', $lob, -1, OCI_B_BLOB);
     
oci_execute($stmt, OCI_DEFAULT);
     if (
$lob->savefile($lob_upload)){
        
oci_execute($conn);
        echo
"Blob successfully uploaded\n";
     }else{
        echo
"Couldn't upload Blob\n";
     }
     
oci_free_descriptor($lob);
     
oci_free_statement($stmt);
     
oci_close($conn);
  }
?>

Exemplu 2. oci_new_descriptor() example

<?php   
    
/* Calling PL/SQL stored procedures which contain clobs as input
     * parameters (PHP 4 >= 4.0.6).
     * Example PL/SQL stored procedure signature is:
     *
     * PROCEDURE save_data
     *   Argument Name                  Type                    In/Out Default?
     *   ------------------------------ ----------------------- ------ --------
     *   KEY                            NUMBER(38)              IN
     *   DATA                           CLOB                    IN
     *
     */

    
$conn = oci_connect($user, $password);
    
$stmt = oci_parse($conn, "begin save_data(:key, :data); end;");
    
$clob = oci_new_descriptor($conn, OCI_D_LOB);
    
oci_bind_by_name($stmt, ':key', $key);
    
oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
    
$clob->write($data);
    
oci_execute($stmt, OCI_DEFAULT);
    
oci_commit($conn);
    
$clob->free();
    
oci_free_statement($stmt);
?>

oci_new_descriptor() returns FALSE on error.

Notã: In PHP versions before 5.0.0 you must use ocinewdescriptor() instead. This name still can be used, it was left as alias of oci_new_descriptor() for downwards compatability. This, however, is deprecated and not recommended.

Ultimele discutii in forum RSS Forum

Ultimele articole Ultimele articole

Top membri

Pirahna Pirahna
la birou
carco carco
Bucuresti
Birkoff Birkoff
Bucuresti
Mascka Mascka
Braila
raul_ raul_
whooper whooper
Toronto ON
mihaitha mihaitha
Sibiu
gabysolomon gabysolomon
Bacau
oriceon oriceon
Constanta
garlicinicolae garlicinicolae

Newsletter


Email:
 inscriere
 renuntare
 
 Arhiva newsletter

Parteneriat

Copyright © 2001-2008 PHP Romania Add PHPRomania to Google Add PHPRomania to Del.icio.us Add PHPRomania to Stumbleupon Add PHPRomania to Yahoo! Add PHPRomania to Digg Add PHPRomania to Blink Loans | Loans | Car Insurance | Car Insurance | Broadband
Ads: Partener Way2Web Nework: gazduire web | inregistrare domenii | web design | imobiliare | web hosting
Powered by Simplis