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
)
PDO::errorInfo
(PHP 5 >= 5.1.0, PECL pdo:0.1-1.0.3)
PDO::errorInfo — Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
Description
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. |
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 errorInfo() 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 )
PDO::errorInfo
23-Sep-2008 11:43
