(PHP 5, PECL OCI8 >= 1.1.0)
oci_error — Retourne la dernière erreur Oracle
$resource
] )Retourne la dernière erreur Oracle.
La fonction doit être appelée immédiatement après qu'une erreur survient. Les erreurs sont réinitialisées après une requête réussie.
resource
Pour la plupart des erreurs, le paramètre resource
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
. Sinon, oci_error() retourne l'information concernant
l'erreur sous la forme d'un tableau associatif.
Clé du tableau | Type | Description |
---|---|---|
code | integer | Le numéro d'erreur Oracle. |
message | string | Le texte de l'erreur Oracle. |
offset | integer | L'octet de position de l'erreur dans la requête SQL. S'il n'y a pas de requête, 0 sera placé comme valeur. |
sqltext | string | Le texte de la requête SQL. S'il n'y a pas de requête, ce sera une chaîne vide. |
Version | Description |
---|---|
4.3.0 | Les entrées offset et sqltext ont été ajoutées. |
Exemple #1 Exemple d'affichage d'un message d'erreur Oracle après une erreur de connexion
<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
$e = oci_error(); // Pour les erreurs oci_connect, ne passez pas de gestionnaire de connexion
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
Exemple #2 Exemple d'affichage d'un message d'erreur Oracle après une erreur d'analyse
<?php
$stid = oci_parse($conn, "select ' from dual"); // Notez l'erreur avec les guillemets
if (!$stid) {
$e = oci_error($conn); // Pour les erreurs oci_parse, passez le gestionnaire de connexion
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
Exemple #3 Exemple d'affichage d'un message d'erreur Oracle après une erreur d'exécution rencontré dans une requête SQL
<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($stid); // Pour les erreurs oci_execute, passez le gestionnaire de connexion
print htmlentities($e['message']);
print "\n<pre>\n";
print htmlentities($e['sqltext']);
printf("\n%".($e['offset']+1)."s", "^");
print "\n</pre>\n";
}
?>
Note:
Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocierror(). Le nom de l'ancienne fonction peut toujours être utilisé dans les versions courantes, malgré le fait qu'il est maintenant obsolète et que nous ne vous le recommandons pas.