downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

PDO::exec> <PDO::errorCode
Last updated: Fri, 14 Aug 2009

view this page in

PDO::errorInfo

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::errorInfo Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données

Description

array PDO::errorInfo ( void )

Valeurs de retour

PDO::errorInfo() retourne un tableau contenant des informations sur l'erreur survenu lors de la dernière opération exécutée par ce gestionnaire de base de données. Le tableau contient les champs suivants :

Élément Information
0 code erreur SQLSTATE (un identifiant alphanumérique de cinq caractères défini dans le standard ANSI SQL).
1 Code erreur spécifique au driver.
2 Message d'erreur spécifique au driver.

Note: Si le code erreur SQLSTATE n'est pas défini ou s'il n'y a pas d'erreur spécifique du driver, l'élément suivant l'élément 0 sera défini à NULL.

PDO::errorInfo() retourne uniquement les informations des erreurs pour les opérations exécutées directement sur un gestionnaire de base de données. Si vous créez un objet PDOStatement avec la fonction PDO::prepare() ou la fonction PDO::query() et que vous invoquez une erreur sur le gestionnaire de requête, PDO::errorInfo() ne retournera pas l'erreur depuis le gestionnaire de requête. Vous devez appeler la fonction PDOStatement::errorInfo() pour retourner les informations sur l'erreur pour une opération exécutée sur un gestionnaire de requête particulier.

Exemples

Exemple #1 Affiche les champs de d'erreurs pour une connexion PDO_ODBC sur une base de donnés DB2

<?php
/* Provoque une erreur -- mauvaise syntaxe SQL */
$stmt $dbh->prepare('mauvaise syntaxe sql');
if (!
$stmt) {
   echo 
"\nPDO::errorInfo():\n";
   
print_r($dbh->errorInfo());
}
?>

L'exemple ci-dessus va afficher :

PDO::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

Voir aussi

  • PDO::errorCode() - Retourne le SQLSTATE associé avec la dernière opération sur la base de données
  • PDOStatement::errorCode() - Récupère le SQLSTATE associé lors de la dernière opération sur la requête
  • PDOStatement::errorInfo() - Récupère les informations sur l'erreur associée lors dernière opération sur la requête



PDO::exec> <PDO::errorCode
Last updated: Fri, 14 Aug 2009
 
add a note add a note User Contributed Notes
PDO::errorInfo
mazen at mindcraftinc dot com
23-Sep-2008 06:43
Some PDO drivers return a larger array. For example, the SQL Server driver returns 5 values.

For example:
<?php
$numRows
= $db->exec("DELETE FROM [TableName] WHERE ID between 6 and 17");
print_r($db->errorInfo());
?>

Result:

Array
(
    [0] => 00000
    [1] => 0
    [2] => (null) [0] (severity 0) []
    [3] => 0
    [4] => 0
)
quickshiftin at gmail dot com
03-Jun-2007 03:29
here are the error codes for sqlite, straight from their site:

The error codes for SQLite version 3 are unchanged from version 2. They are as follows:
#define SQLITE_OK           0   /* Successful result */
#define SQLITE_ERROR        1   /* SQL error or missing database */
#define SQLITE_INTERNAL     2   /* An internal logic error in SQLite */
#define SQLITE_PERM         3   /* Access permission denied */
#define SQLITE_ABORT        4   /* Callback routine requested an abort */
#define SQLITE_BUSY         5   /* The database file is locked */
#define SQLITE_LOCKED       6   /* A table in the database is locked */
#define SQLITE_NOMEM        7   /* A malloc() failed */
#define SQLITE_READONLY     8   /* Attempt to write a readonly database */
#define SQLITE_INTERRUPT    9   /* Operation terminated by sqlite_interrupt() */
#define SQLITE_IOERR       10   /* Some kind of disk I/O error occurred */
#define SQLITE_CORRUPT     11   /* The database disk image is malformed */
#define SQLITE_NOTFOUND    12   /* (Internal Only) Table or record not found */
#define SQLITE_FULL        13   /* Insertion failed because database is full */
#define SQLITE_CANTOPEN    14   /* Unable to open the database file */
#define SQLITE_PROTOCOL    15   /* Database lock protocol error */
#define SQLITE_EMPTY       16   /* (Internal Only) Database table is empty */
#define SQLITE_SCHEMA      17   /* The database schema changed */
#define SQLITE_TOOBIG      18   /* Too much data for one row of a table */
#define SQLITE_CONSTRAINT  19   /* Abort due to contraint violation */
#define SQLITE_MISMATCH    20   /* Data type mismatch */
#define SQLITE_MISUSE      21   /* Library used incorrectly */
#define SQLITE_NOLFS       22   /* Uses OS features not supported on host */
#define SQLITE_AUTH        23   /* Authorization denied */
#define SQLITE_ROW         100  /* sqlite_step() has another row ready */
#define SQLITE_DONE        101  /* sqlite_step() has finished executing */
quickshiftin at gmail dot com
21-Mar-2007 04:43
here is a reference to the ansi error codes
there are several others;
a link to the official spec from ansi would be nice
(have to rebuild this link because its too long to post w/o breaking it up)

http://download-east.oracle.com/docs/
cd/B14117_01/appdev.101/a87540/ch2.htm

~quickshiftin`
Travis Pulley (travis at pulley dot org)
22-Aug-2006 01:29
The example code is incorrect. The line that reads:
$err = $dbh->prepare('SELECT skull FROM bones');

Will set the value of $err to be boolean FALSE.

So, to get a useful error dump change this line:
print_r($err->errorInfo());

to:
print_r($dbh->errorInfo());

PDO::exec> <PDO::errorCode
Last updated: Fri, 14 Aug 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites