oci_error

(PHP 5)

oci_error -- Retourne la dernière erreur Oracle

Description

array oci_error ( [resource source] )

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 inclues 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.