Set WeberTrivia.com to be my default homepage.   Suggest a Question                                               

Suggest A Question : :  Frequently Asked Questions : :  Search : :  Relevant Manuals : : 
PHP Questions : :  Linux Questions : :  MySQL Questions : : 
home  [ Login ] 

oci_new_descriptor

(no version information, might be only in CVS)

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.

Example 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);
  }
?>

Example 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.

Note: 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.

Who's Online
Guest Users: 12
Google
Web
WeberTrivia
WeberDev
WeberForums
 Free Sample Chapters  Free Sample Chapters
  Deliver First Class Web Sites: 101 Essential Checklists
Want to learn how to make your web sites usable and accessible? Want to ensure that your sites meet current best practice, without spending hours trawling through incomprehensible specifications and recommendations from dozens of different books, research papers, and web sites? Want to make sure that the sites you build are "right the first time," requiring no costly redevelopments?

More Sample Chapters

PHP General