Manuel PHP

oci_new_connect

(PHP 5, PECL oci8 >= 1.1.0)

oci_new_connectÉtablit une nouvelle connexion au serveur Oracle

Description

resource oci_new_connect ( string $username , string $password [, string $db [, string $charset [, int $session_mode ]]] )

Établit une nouvelle connexion au serveur Oracle et s'identifie.

Contrairement aux fonctions oci_connect() et oci_pconnect(), oci_new_connect() ne met pas en cache les connexions et retourne toujours un gestionnaire de connexion nouvellement ouvert. Ceci est très utile si votre application a besoin d'une isolation transactionnelle entre deux jeux de requêtes.

Liste de paramètres

username

Le nom d'utilisateur Oracle.

password

Le mot de passe pour l'utilisateur.

db

Peut contenir l'instance locale d'Oracle ou un nom disponible dans le fichier tnsnames.ora.

S'il n'est pas fourni, PHP va chercher la valeur dans les variables d'environnement ORACLE_SID et TWO_TASK pour déterminer le nom de l'instance locale d'Oracle, et la localisation du fichier tnsnames.ora.

charset

Si vous utilisez un serveur Oracle version 9.2 et suivant, vous pouvez renseigner le paramètre charset , qui peut être utilisé dans la nouvelle connexion. Si vous utilisez un serveur Oracle inférieur à la version 9.2, ce paramètre sera ignoré et la variable d'environnement NLS_LANG sera utilisée à la place.

session_mode

Ce paramètre est disponible depuis la version 1.1 et accepte les valeurs suivantes : OCI_DEFAULT, OCI_SYSOPER et OCI_SYSDBA. Si OCI_SYSOPER ou OCI_SYSDBA est spécifié, oci_new_connect() tentera d'établir une connexion privilégiée en utilisant les droits externes. Les connexions privilégiées sont désactivées par défaut. Pour les activer, vous devez définir oci8.privileged_connect à On.

Valeurs de retour

Retourne un identifiant de connexion, ou FALSE si une erreur survient.

Exemples

Voici comment séparer des transactions.

Exemple #1 Exemple avec oci_new_connect()

  1. <?php
  2. echo "<html><pre>";  
  3. $db = "";  
  4.  
  5. $c1 = oci_connect("scott", "tiger", $db);  
  6. $c2 = oci_new_connect("scott", "tiger", $db);  
  7.  
  8. function create_table($conn)  
  9. {  
  10. $stmt = oci_parse($conn, "create table scott.hallo (test
  11. varchar2(64))");  
  12. oci_execute($stmt);  
  13. echo $conn . " created table\n\n";  
  14. }  
  15.  
  16. function drop_table($conn)  
  17. {  
  18. $stmt = oci_parse($conn, "drop table scott.hallo");  
  19. oci_execute($stmt);  
  20. echo $conn . " dropped table\n\n";  
  21. }  
  22.  
  23. function insert_data($conn)  
  24. {  
  25. $stmt = oci_parse($conn, "insert into scott.hallo
  26.          values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");  
  27. oci_execute($stmt, OCI_DEFAULT);  
  28. echo $conn . " inserted hallo\n\n";  
  29. }  
  30.  
  31. function delete_data($conn)  
  32. {  
  33. $stmt = oci_parse($conn, "delete from scott.hallo");  
  34. oci_execute($stmt, OCI_DEFAULT);  
  35. echo $conn . " deleted hallo\n\n";  
  36. }  
  37.  
  38. function commit($conn)  
  39. {  
  40. oci_commit($conn);  
  41. echo $conn . " committed\n\n";  
  42. }  
  43.  
  44. function rollback($conn)  
  45. {  
  46. oci_rollback($conn);  
  47. echo $conn . " rollback\n\n";  
  48. }  
  49.  
  50. function select_data($conn)  
  51. {  
  52. $stmt = oci_parse($conn, "select * from scott.hallo");  
  53. oci_execute($stmt, OCI_DEFAULT);  
  54. echo $conn . "----selecting\n\n";  
  55. while (oci_fetch($stmt)) { 
  56.    echo $conn . " <" . oci_result($stmt, "TEST") . ">\n\n";  
  57. }  
  58. echo $conn . "----done\n\n";  
  59. }  
  60.  
  61. create_table($c1);  
  62. insert_data($c1);  
  63.  
  64. select_data($c1);  
  65. select_data($c2);  
  66.  
  67. rollback($c1);  
  68.  
  69. select_data($c1);  
  70. select_data($c2);  
  71.  
  72. insert_data($c2);  
  73. commit($c2);  
  74.  
  75. select_data($c1);  
  76.  
  77. delete_data($c1);  
  78. select_data($c1);  
  79. select_data($c2);  
  80. commit($c1);  
  81.  
  82. select_data($c1);  
  83. select_data($c2);  
  84.  
  85. drop_table($c1);  
  86. echo "</pre></html>";  
  87. ?> 

Notes

Note: Si vous utilisez PHP avec le client Instant d'Oracle, vous pouvez utiliser les méthodes de nommage facilitant la connexion décrites ici : » http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306. En fait, cela signifie que vous pouvez spécifier "//db_host[:port]/database_name" en tant que nom de base de données. Mais si vous voulez utiliser l'ancienne façon de nommage, vous devez définir soit ORACLE_HOME, soit TNS_ADMIN.

Note: Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinlogon(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_connect(), 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