Manuel PHP

oci_new_descriptor

(PHP 5, PECL oci8 >= 1.1.0)

oci_new_descriptorInitialise un nouveau pointeur vide de LOB/FILE Oracle

Description

OCI-Lob oci_new_descriptor ( resource $connection [, int $type ] )

Initialise un nouveau pointeur vide de LOB/FILE Oracle.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

type

Les valeurs acceptées pour type sont : OCI_D_FILE, OCI_D_LOB et OCI_D_ROWID.

Valeurs de retour

Retourne une nouvelle ressource LOB ou FILE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_new_descriptor()

  1. <?php
  2. /* Ce script est fait pour être appelé dans un formulaire HTML
  3. * Il attends les variables $user, $password, $table, $where, et $commitsize
  4. * Le script efface alors les lignes sélectionnées avec ROWID et valide
  5. * l'effacement après chaque groupe de $commitsize lignes.
  6. * (Utilisez avec prudence, car il n'y a pas d'annulation possible).
  7. */  
  8. $conn = oci_connect($user, $password);  
  9. $stmt = oci_parse($conn, "select rowid from$table $where");  
  10. $rowid = oci_new_descriptor($conn, OCI_D_ROWID);  
  11. oci_define_by_name($stmt, "ROWID", $rowid);  
  12. oci_execute($stmt);  
  13. while (oci_fetch($stmt)) { 
  14.    $nrows = oci_num_rows($stmt); 
  15.    $delete = oci_parse($conn, "delete from$tablewhere ROWID = :rid"); 
  16.    oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID); 
  17.    oci_execute($delete); 
  18.    echo "$nrows\n"; 
  19.    if (($nrows % $commitsize) == 0) { 
  20.       oci_commit($conn); 
  21.    }  
  22. }  
  23. $nrows = oci_num_rows($stmt);  
  24. echo "$nrowsdeleted...\n";  
  25. oci_free_statement($stmt);  
  26. oci_close($conn);  
  27. ?> 
  1. <?php
  2. /* Ce script illustre le chargement de LOB
  3. * Le formulaire utilisé dans cet exemple ressemble à ceci :
  4. * <form action="upload.php" method="post" enctype="multipart/form-data">
  5. * <input type="file" name="lob_upload" />
  6. * ...
  7. */  
  8. if (!isset($lob_upload) || $lob_upload == 'none'){  
  9. ?>
  10. <form action="upload.php" method="post" enctype="multipart/form-data">
  11. Upload file: <input type="file" name="lob_upload" /><br />
  12. <input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
  13. </form>
  14. <?php
  15. } else { 
  16.  
  17.    // $lob_upload contient le fichier temporaire
  18.  
  19.    // Reportez-vous à la section sur le téléchargement de fichiers
  20.    // pour sécuriser vos téléchargements
  21.  
  22.    $conn = oci_connect($user, $password); 
  23.    $lob = oci_new_descriptor($conn, OCI_D_LOB); 
  24.    $stmt = oci_parse($conn, "insert into$table(id, the_blob)
  25.           values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob"); 
  26.    oci_bind_by_name($stmt, ':the_blob', $lob, -1, OCI_B_BLOB); 
  27.    oci_execute($stmt, OCI_DEFAULT); 
  28.    if ($lob->savefile($lob_upload)){ 
  29.       oci_commit($conn); 
  30.       echo "BLOB chargé !\n"; 
  31.    }else{ 
  32.       echo "Impossible de charger le BLOB\n"; 
  33.    } 
  34.    oci_free_descriptor($lob); 
  35.    oci_free_statement($stmt); 
  36.    oci_close($conn);  
  37. }  
  38. ?> 

Exemple #2 Exemple avec oci_new_descriptor()

  1. <?php
  2. /* Appel d'une procédure PL/SQL stockée qui prend un clobs
  3. * en entrée (PHP 4 >= 4.0.6).
  4. * Exemple de signateure de procédure stockée PL/SQL :
  5. *
  6. * PROCEDURE save_data
  7. * Argument Name             Type               In/Out Default?
  8. * ------------------------------ ----------------------- ------ --------
  9. * KEY                     NUMBER(38)          IN
  10. * DATA                   CLOB               IN
  11. *
  12. */  
  13.  
  14. $conn = oci_connect($user, $password);  
  15. $stmt = oci_parse($conn, "begin save_data(:key, :data); end;");  
  16. $clob = oci_new_descriptor($conn, OCI_D_LOB);  
  17. oci_bind_by_name($stmt, ':key', $key);  
  18. oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);  
  19. $clob->write($data);  
  20. oci_execute($stmt, OCI_DEFAULT);  
  21. oci_commit($conn);  
  22. $clob->free();  
  23. oci_free_statement($stmt);  
  24. ?> 

Notes

Note: Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinewdescriptor(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_descriptor(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.


Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique