Interfaçage PHP avec Oracle

Remarque

L'API OCI a remplacé l'ancienne API ORA (qui n'est plus supportée dans PHP).

SyntaxeConnexion à la base de données

oci_connect établit une connexion entre le serveur PHP et un serveur Oracle.

1
connection_id oci_connect(string username, string password, string bd); 

Exemple

1
if (! $conn=oci_connect($user, $passwd, $bd)) {
2
 echo "Impossible d'établir la connexion ";
3
 exit;
4
}

SyntaxePréparation d'une requête

oci_parse analyse une requête SQL et retourne un pointeur sur un statement (espace de requête).

1
statement_handle oci_parse(connection_id connection, string query);  

Exemple

1
if(! $statement=oci_parse($conn, $sql)) {
2
 echo "Impossible de préparer la requête";
3
 exit;
4
}

SyntaxeExé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.

1
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

1
if(! oci_execute($statement, OCI_DEFAULT)) {
2
 echo "Impossible d'exécuter la requête";
3
 exit;
4
}

SyntaxeCommit d'une transaction

oci_commit valide la transaction en cours sur une connexion.

1
boolean oci_commit(connection_id connection); 

Exemple

1
if(! oci_commit($conn)) {
2
 echo "Impossible de valider la transaction";
3
 exit;
4
}

RemarqueRollback

oci_rollback permet d'annuler une transaction.

SyntaxeRé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.

1
array oci_fetch_array(statement_handle statement)

Exemple

1
while ($row=oci_fetch_array($statement)) {
2
 echo $results[0];
3
 echo $results[1];
4
 ...
5
}

SyntaxeDéconnexion de la base de données

oci_close ferme une connexion Oracle.

1
boolean oci_close(connection_id connection);  

Exemple

1
if (! oci_close($conn)) {
2
 echo "Impossible de fermer la connexion ";
3
 exit;
4
}