SunshinePHP Developer Conference 2015

oci_error

(PHP 5, PECL OCI8 >= 1.1.0)

oci_errorRetourne la dernière erreur Oracle

Description

array oci_error ([ resource $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.

Description du tableau retourné par oci_error()
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.

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";
}
?>

add a note add a note

User Contributed Notes 1 note

up
0
alvaro at demogracia dot com
2 months ago
Please note that, unlike equivalent functions in other DB extensions, skipping the resource argument is not synonym for "just get last error".
To Top