oci_error() retourne la dernière erreur trouvée.
Si le paramètre source n'est pas fourni, la
dernière erreur rencontrée est retournée.
Pour la plupart des erreurs, le paramètre source
représente une ressource de connexion. Pour les erreurs de connexion avec les fonctions
oci_connect(), oci_new_connect() ou
oci_pconnect(), ne passez aucun paramètre.
Si aucune erreur n'est trouvée, oci_error() retourne
FALSE. oci_error() retourne l'erreur sous la forme
d'un tableau associatif. Dans ce tableau, l'élément
code contient le numéro d'erreur Oracle
et message contient le message d'erreur.
Depuis PHP 4.3Â : offset et sqltext seront
aussi incluses dans le tableau retourné, pour indiquer la
position de l'erreur et la requête en cause.
Exemple 1. Exemple d'affichage d'un message d'erreur Oracle après une erreur
de connexion
$conn = @oci_connect("scott", "tiger", "mydb"); if (!$conn) { $e = oci_error(); // Pour les erreurs oci_connect, aucun paramètre n'est passé echo htmlentities($e['message']); }
Exemple 2. Exemple d'affichage d'un message d'erreur Oracle après une erreur
d'analyse
$stmt = @oci_parse($conn, "select ' from dual"); // Notez l'erreur de guillemet if (!$stmt) { $e = oci_error($conn); // Pour les erreurs oci_parse, on passe la ressource de connexion echo htmlentities($e['message']); }
Exemple 3. Exemple d'affichage d'un message d'erreur Oracle après une erreur
d'exécution
$r = oci_execute($stmt); if (!$r) { $e = oci_error($stmt); // Pour les erreurs oci_execute, on passe la ressource de traitement echo htmlentities($e['message']); echo '<pre>'; echo htmlentities($e['sqltext']); printf("\n%".($e['offset']+1)."s", "^"); echo '</pre>'; }
Note :
Dans les versions de PHP antérieures à la version 5.0.0,
vous devez utiliser la fonction ocierror().
Cet ancien nom est toujours utilisable : un alias a été fait vers
la fonction oci_error(), pour assurer
la compatibilité ascendante. Toutefois, il est recommandé de ne
plus l'utiliser.