Interfaçage PHP avec Oracle
Fait à partir de http://www.php.net/manual/en/ref.oci8.php.
Remarque :
L'API OCI a remplacé l'ancienne API ORA (qui n'est plus supportée dans PHP).
Syntaxe : Connexion à la base de données
oci_connect
établit une connexion entre le serveur PHP et un serveur Oracle.
connection_id oci_connect(string username, string password, string bd);
Exemple :
if (! $conn=oci_connect($user, $passwd, $bd)) {
echo "Impossible d'établir la connexion ";
exit;
}
Syntaxe : Préparation d'une requête
oci_parse
analyse une requête SQL et retourne un pointeur sur un statement (espace de requête).
statement_handle oci_parse(connection_id connection, string query);
Exemple :
if(! $statement=oci_parse($conn, $sql)) {
echo "Impossible de préparer la requête";
exit;
}
Syntaxe : Exécution d'une requête
oci_execute
exécute une commande déjà préparée avec OCIParse. Il est possible de spécifier le mode d'exécution des transactions (par défaut, il est en auto-commit, c'est à dire que l'ordre commit est passé automatiquement après chaque instruction SQL). Il est préférable d'utiliser le mode OCI_DEFAULT qui permet de contrôler les commits.
boolean oci_execute(statement_handle statement, int mode);
$mode
permet de paramétrer le commit
(par défaut, le commit est envoyé automatiquement si l'exécution est correcte).
Exemple :
if(! oci_execute($statement, OCI_DEFAULT)) {
echo "Impossible d'exécuter la requête";
exit;
}
Syntaxe : Commit d'une transaction
oci_commit
valide la transaction en cours sur une connexion.
boolean oci_commit(connection_id connection);
Exemple :
if(! oci_commit($conn)) {
echo "Impossible de valider la transaction";
exit;
}
Remarque : Rollback
oci_rollback
permet d'annuler une transaction.
Syntaxe : Récupération d'enregistrements
oci_fetch_array
retourne la ligne suivante (pour une instruction SELECT) dans un tableau à une dimension (il écrasera le contenu du tableau s'il existe). Par défaut, le tableau sera un tableau à double index, numérique et associatif.
array oci_fetch_array(statement_handle statement)
Exemple :
while ($row=oci_fetch_array($statement)) {
echo $results[0];
echo $results[1];
...
}
Syntaxe : Déconnexion de la base de données
oci_close
ferme une connexion Oracle.
boolean oci_close(connection_id connection);
Exemple :
if (! oci_close($conn)) {
echo "Impossible de fermer la connexion ";
exit;
}