&reftitle.examples; Ces exemples utilisent, pour se connecter à la base de données, l'utilisateur HR qui est le schéma "Human Resources" fourni par la base de données Oracle. Ce compte doit avoir été déverrouillé et le mot de passe réinitialisé avant de pouvoir l'utiliser. Ces exemples se connectent à la base de données XE de votre machine. Modifiez la chaîne de connexion afin de correspondre à votre base de données avant d'exécuter les exemples de cette documentation. Requête simple Cet exemple montre l'exécution d'une requête et l'affiche des résultats. Les requêtes OCI8 utilisent les étapes préparation/exécution/récupération des données. \n"; while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) { print "\n"; foreach ($row as $item) { print " " . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "\n"; } print "\n"; } print "\n"; oci_free_statement($stid); oci_close($conn); ?> ]]> Insertion de données en utilisant des variables liées Les variables liées augmentent les performances en permettant la réutilisation du cache et du contexte d'exécution. Les variables liées augmentent également la sécurité en prévenant bons nombres d'injection SQL. ]]> Liage d'une clause WHERE d'une requête Ceci montre le liage simple. \n"; } // Affiche : // Austin // Ernst // Hunold // Lorentz // Pataballa oci_free_statement($stid); oci_close($conn); ?> ]]> Insertion de données dans une colonne CLOB Pour de lourdes données, utilisez un objet binaire long (BLOB) ou un objet de caractères long (CLOB). Cet exemple utilise les CLOB. save("Une chaîne vraiment très longue"); oci_commit($conn); // Récupération de 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); print ''; while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) { print ''; // Dans une boucle, le fait de libérer la variable avantde récupérer la // seconde ligne permet de réduire l'utilisation mémoire de PHP unset($row); } print '
'.$row['MYCLOB'].'
'; ?> ]]>
Utilisation d'une procédure stockée PL/SQL Vous devez lier une variable pour la valeur retournée et, optionnellement, pour tous les arguments de la fonction PL/SQL. ]]> Utilisation d'une procédure stockée PL/SQL Avec les procédures stockées, vous devez lier les variables pour tous les arguments. ]]> Appel d'une fonction PL/SQL qui retourne un <literal>REF CURSOR</literal> Chaque valeur retournée par la requête est un REF CURSOR à utiliser pour récupérer les données. \n"; while (($row = oci_fetch_array($stid, OCI_ASSOC))) { echo "\n"; $rc = $row['MFRC']; oci_execute($rc); // La valeur de la colonne retournée depuis la requête est une référence de curseur while (($rc_row = oci_fetch_array($rc, OCI_ASSOC))) { echo " " . $rc_row['CITY'] . "\n"; } oci_free_statement($rc); echo "\n"; } echo "\n"; // Affiche : // Beijing // Bern // Bombay // Geneva oci_free_statement($stid); oci_close($conn); ?> ]]>