Le langage PHP dispose de nombreuses fonctions permettant de travailler sur des bases de données Oracle version 7 et 8.

La configuration de PHP pour Oracle est longuement expliquée sur le site PHPBuilder.com ou sur tldp.org.

Fonction
Description
true | false = Ora_Bind($id_curseur, $variable_php,
$parametre_sql, $longueur [, $type]);
réalise une liaison entre une variable PHP et un paramètre Oracle.
true | false = Ora_Close($id_curseur);
ferme un pointeur Oracle.
$nom = Ora_ColumnName($id_curseur, $position_champ);
retourne le nom du champ du résultat.
$taille = Ora_ColumnSize($id_curseur, $position_champ);
retourne la taille du champ d'un résultat.
$type = Ora_ColumnType($id_curseur, $position_champ);
retourne le type du champ d'un résultat.
true | false = Ora_Commit($id_connexion);
valide une transaction Oracle.
true | false = Ora_CommitOff($id_connexion);
désactive la validation automatique.
true | false = Ora_CommitOn($id_connexion);
active la validation automatique.
true | false = Ora_Do($id_connexion, $requete);
prépare, exécute une requête et lit le premier enregistrement du résultat.
$message = Ora_Error($id_connexion);
Retourne le message d'erreur Oracle.
$code_erreur = Ora_ErrorCode($id_connexion);
Retourne le code d'erreur Oracle.
true | false = Ora_Exec($id_curseur);
exécute une requête analysée sur un pointeur Oracle.
true | false = Ora_Fetch($id_curseur);
retourne un enregistrement d'un résultat.
true | false = Ora_Fetch_Into($id_curseur, $tab_resultat [, $semaphore]);
retourne un enregistrement dans le tableau de résultat.
$valeur = Ora_GetColumn($id_curseur, $champ);
retourne la valeur d'un champ désigné par son nom ou sa position.
true | false = Ora_Logoff($id_connexion);
ferme une connexion Oracle.
$id_connexion = Ora_Logon($utilisateur, $mot_passe);
ouvre une connexion Oracle.
$id_connexion = Ora_pLogon($utilisateur, $mot_passe);
ouvre une connexion persistante à Oracle.
$nb_champs = Ora_Numcols($id_curseur);
retourne le nombre de champs.
$nb_enregistrements = Ora_Numrows($id_curseur);
retourne le nombre d'enregistrements.
$id_curseur = Ora_Open($id_connexion);
ouvre un pointeur Oracle.
true | false = Ora_Parse($id_curseur, $requete, $nb_report);
analyse une requête SQL.
true | false = Ora_Rollback($id_connexion);
annule une transaction.
Fonctions Oracle 8
$nombre = ociDefineByName($id_resultat, $nom_champ, $variable [, $type]);
utilise une variable PHP pour la phase de définition, dans une commande SELECT.
$nombre = ociBindByName($id_resultat, $nom_oracle,
$variable_php, $longueur [, $type]);
utilise une variable PHP pour la phase de définition dans un SELECT.
$id_connexion | false = ociLogon($utilisateur, $mot_passe [, $nom_base]);
ouvre une connexion à un serveur Oracle.
$id_connexion | false = ociPLogon($utilisateur, $mot_passe [, $nom_base]);
ouvre une connecxion persistante à un serveur Oracle.
$id_connexion | false = ociNLogon($utilisateur, $mot_passe [, $nom_base]);
ouvre une nouvelle connexion à un serveur Oracle.
true | false = ociLogOff($id_connexion);
ferme une connexion à un serveur Oracle.
= ociexecute($id_resultat [oci_COMMIT_ON_SUCCESS | oci_DEFAULT]);
exécute une requête SQL préparée par ociparse.
true | false = ociCommit($id_connexion);
valide les transactions en cours.
true | false = ociRollback($id_connexion);
annule les transactions en cours.
$id_descripteur = ociNewDescriptor($id_connexion
[, oci_D_FILE | oci_D_LOB | oci_D_ROWID]);
initialise un nouveau pointeur vide de LOB/FILE.
$nb_enregistrements = ociRowCount($id_resultat);
retourne le nombre d'enregistrements dans un résultat.
$nb_champs = ociNumCols($id_resultat);
retourne le nombre de champs dans un résultat.
$valeur = ociResult($id_resultat, $champ);
retourne la valeur d'un champ désigné par son nom ou sa position dans la ligne courante d'un résultat.
$position = ociFetch($id_resultat);
place le prochain enregistrement dans le pointeur de résultat.
true | false = ociFetchInto($id_resultat, $tab_resultat, $mode);
retourne la ligne suivante dans un tableau.
Mode Description
oci_ASSOC retourne un tableau associatif.
oci_NUM retourne un tableau indicé.
oci_RETURN_NULLS retourne les colonnes vides.
oci_RETURN_LOBS retourne la valeur des objets LOB plutôt que leur descripteur.
true | false = ociFetchStatement($id_resultat, $tab_variables);
retourne toutes les lignes d'un résultat dans le tableau de variables.
true | false = ociColumnIsNULL($id_resultat, $champ);
vérifie si la valeur d'un champ est égale à NULL.
$nom = ociColumnName($id_resultat, $position_champ);
retourne le nom d'un champ.
$taille = ociColumnSize($id_resultat, $champ);
retourne la taille d'un champ.
$type = ociColumnType($id_resultat, $champ);
retourne le type de données d'un champ.
$version = ociServerVersion($id_connexion);
retourne une chaîne de caractères contenant le numéro de version du serveur.
$chaine = ociStatementType($id_resultat);
retourne le type de commande SQL (select, UPDATE, INSERT, etc.).
$id_curseur = ociNewCursor($id_connexion);
retourne un nouveau pointeur à utiliser pour lier les pointeurs de références.
true | false = ociFreeStatement($id_resultat);
libère toutes les ressources occupées par une commande.
true | false = ociFreeCursor($id_curseur);
libère toutes les ressources occupées par un pointeur.
true | false = ociFreeDesc($id_descripteur);
supprime un descripteur de LOB.
true | false = ociparse($id_connexion, $requete);
analyse une requête SQL.
$tableau | false = ociError($identificateur);
retourne la dernière erreur d'une connexion, d'un résultat ou globale.
ociinternaldebug(0 | 1);
active ou désactive l'affichage des données de deboguage.
true | false = OCICancel($id_resultat);
détruit les ressources liées au dernier résultat.
true | false = ocisetprefetch($id_resultat, $nb_enregistrements);
indique le nombre d'enregistrements devant être pré-lues.
OCIWriteLobToFile($obj_lob [, $fichier [, $nb_depart [, $longueur]]]);
écrit un objet LOB dans un fichier.
$chaine = OCISaveLobFile($obj_lob);
retourne un objet LOB dans une chaîne de caractères.
$chaine = OCISaveLob($obj_lob);
retourne un objet LOB dans une chaîne de caractères.
$chaine = OCILoadLob($obj_lob);
charge un objet LOB.
$echelle = OCIColumnScale($id_resultat, $num_champ);
retourne l'échelle d'un champ numérique.
$precision = OCIColumnPrecision($id_resultat, $num_champ);
retourne la précision d'un champ numérique.
$valeur = OCIColumnTypeRaw($id_resultat, $num_champ);
retourne le type brut d'un champ.
$chaine = OCINewCollection($id_connexion, $tdo, $schema);
crée une nouvelle collection.
$chaine = OCIFreeCollection($obj_lob);
libère une collection.
$chaine = OCICollAssign($obj_collection, $objet);
assigne un objet à une collection.
$valeur = OCICollAssignElem($obj_collection, $ndx, $valeur);
assigne un élément à une collection.
$chaine = OCICollGetElem($obj_collection, $ndx);
retourne la valeur d'un élément d'une collection.
$chaine = OCICollMax($obj_collection);
retourne la longueur maximum de la collection.
$chaine = OCICollSize($obj_collection);
retourne la taille de la collection.
$chaine = OCICollTrim($obj_collection, $nombre);
enlève les espaces de début et de fin de la collection.
Exemple
<?php
  $id_connexion = ociLogon("utilisateur" , "motpasse" "bd_personnel")
        or die("<h3>Une erreur est survenue :</h3>" 
                . ociError($id_connexion) . "</b>");

  $preparation = ociParse($id_connexion, "select * from employee")
  $id_resultat = ociExecute($preparation, oci_DEFAULT);

  echo '<table border="1"><tr>';
  for($i = 0; $i < ociNumCols($id_resultat); $i++)
  {
    echo '<th>' . ociColumnName($id_resultat, $i) 
             . '<br>' . ociColumType($id_resultat, $i) . '(' 
             . ociColumnSize($id_resultat, $i) . ')</th>';
  }
  echo '</tr>';

  for($i = 0; $i < ociRowsCount($id_resultat); $i++)
  {
    echo '<tr>';
    for($j = 0; $j < ociNumCols($id_resultat); $j++))
    {
      echo '<td>' . ociResult($id_resultat, $i, $j) . '</td>';
    }
    echo '</tr>';
  }
  echo '</table>';

  ociCancel($id_resultat);

  ociLogoff($id_connexion);
?>