oci_error
(PHP 5, PECL OCI8 >= 1.1.0)
oci_error — Retourne la dernière erreur Oracle
Description
$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.
Liste de paramètres
-
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.
Valeurs de retour
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. |
Historique
Version | Description |
---|---|
4.3.0 | Les entrées offset et sqltext ont été ajoutées. |
Exemples
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"; } ?>
Notes
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.