Manuel PHP
Exemple #1 Requête basique
- <?php
- $conn = oci_connect('hr', 'hr', 'orcl');
- if (!$conn) {
- $e = oci_error();
- print htmlentities($e['message']);
- exit;
- }
- $query = 'SELECT * FROM DEPARTMENTS';
- $stid = oci_parse($conn, $query);
- if (!$stid) {
- $e = oci_error($conn);
- print htmlentities($e['message']);
- exit;
- }
- $r = oci_execute($stid, OCI_DEFAULT);
- if (!$r) {
- $e = oci_error($stid);
- echo htmlentities($e['message']);
- exit;
- }
- print '<table border="1">';
- while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
- print '<tr>';
- foreach ($row as $item) {
- print '<td>'.($item?htmlentities($item):' ').'</td>';
- }
- print '</tr>';
- }
- print '</table>';
- oci_close($conn);
- ?>
Exemple #2 Requête Insert avec des variables liées
- <?php
- // Avant d'exécuter, création de la table
- // CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));
- $conn = oci_connect('scott', 'tiger', 'orcl');
- $query = 'INSERT INTO MYTABLE VALUES(:myid, :mydata)';
- $stid = oci_parse($conn, $query);
- $id = 60;
- $data = 'Some data';
- oci_bind_by_name($stid, ':myid', $id);
- oci_bind_by_name($stid, ':mydata', $data);
- $r = oci_execute($stid);
- if ($r)
- print "Une ligne a été insérée";
- oci_close($conn);
- ?>
Exemple #3 Insertion de donnée dans une colonne CLOB
- <?php
- // Avant l'exécution, création de la table
- // CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB);
- $conn = oci_connect('scott', 'tiger', 'orcl');
- $mykey = 12343; // clé arbitraire pour cet exemple;
- $sql = "INSERT INTO mytable (mykey, myclob)
- VALUES (:mykey, EMPTY_CLOB())
- RETURNING myclob INTO :myclob";
- $stid = oci_parse($conn, $sql);
- $clob = oci_new_descriptor($conn, OCI_D_LOB);
- oci_bind_by_name($stid, ":mykey", $mykey, 5);
- oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
- oci_execute($stid, OCI_DEFAULT);
- $clob->save("A very long string");
- oci_commit($conn);
- // Récupération des données CLOB
- $query = 'SELECT myclob FROM mytable WHERE mykey = :mykey';
- $stid = oci_parse ($conn, $query);
- oci_bind_by_name($stid, ":mykey", $mykey, 5);
- oci_execute($stid, OCI_DEFAULT);
- print '<table border="1">';
- while ($row = oci_fetch_array($stid, OCI_ASSOC)) {
- $result = $row['MYCLOB']->load();
- print '<tr><td>'.$result.'</td></tr>';
- }
- print '</table>';
- ?>
Vous pouvez facilement accéder aux procédures stockées, de la même façon que vous le feriez par ligne de commande :
Exemple #4 Utilisation de procédures stockées
- <?php
- // par webmaster at remoterealty dot com
- $sth = oci_parse($dbh, "begin sp_newaddress( :address_id, '$firstname',
- '$lastname', '$company', '$address1', '$address2', '$city', '$state',
- '$postalcode', '$country', :error_code );end;");
- // Cela appelle la procédure stockée sp_newaddress, avec la variable :address_id
- // pour les entrées/sorties et :error_code comme variable de sortie.
- // Ensuite, vous faites les liaisons suivantes :
- oci_bind_by_name($sth, ":address_id", $addr_id, 10);
- oci_bind_by_name($sth, ":error_code", $errorcode, 10);
- oci_execute($sth);
- ?>
Remonter 
