Statement's errorCode() returns an empty string before execution, and '00000' (five zeros) after a sucessfull execution:
<?php
$stmt = $pdo->prepare($query);
assert($stmt->errorCode === '');
$stmt->execute();
assert($stmt->errorCode === '00000');
?>PDOStatement::errorCode
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
PDOStatement::errorCode
Референца за `pdostatement.errorcode.php` со подобрена типографија и навигација.
PDOStatement::errorCode
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::errorCode — Преземи го SQLSTATE поврзан со последната операција на рачката на изјавата
Параметри
Оваа функција нема параметри.
Вратени вредности
Идентично на Враќа нумеричка вредност на пораката за грешка од претходната MySQL операција, освен што нема да ја одрази таа грешка. Мора да повикате само ги презема шифрите за грешки за операциите извршени со PDOStatement објекти.
Примери
ако не е извршена никаква операција на рачката на базата на податоци.
<?php
/* Provoke an error -- the BONES table does not exist */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();
echo "\nPDOStatement::errorCode(): ";
print $err->errorCode();
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
PDOStatement::errorCode(): 42S02
Види Исто така
- Враќа нумеричка вредност на пораката за грешка од претходната MySQL операција - Преземи го SQLSTATE поврзан со последната операција на рачката на базата на податоци
- Пример #1 Преземање на SQLSTATE код PDO::errorInfo()
- - Преземи го SQLSTATE поврзан со последната операција на рачката на изјавата PDOStatement::errorInfo()
Белешки од корисници 2 забелешки
Neither this property nor the PDOStatement::errorInfo() properties are available if you create your own exception handler.
I am using PHP 5.2.4, PDO_INFORMIX 1.2.0.
Making this call at any point in the program after setting your own exception handler produces an error:
PHP Notice: Undefined property: PDOStatement::$errorCode in new_query.php on line
or
PHP Notice: Undefined property: PDOStatement::$errorInfo in new_query.php on line
But if I set the PDO to SILENT, only set error codes with:
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT)
Then process with if/else the call to this functions works fine. The examples below only do error checking to show the result codes of this function. Normally you would want more.
FAILS:
$dbh = new PDO("informix...")
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$result = $dbh->query("asdfkjasdfkjasdfjk"); /* obvious sql error */
if ($result) print "success!";
}
catch
{
$myeCode = $dbh->errorCode();
/* do stuff with error */
};
$dbh=0;
The error handler gets called but knows nothing about $dbh->errorCode or $dbh->errorInfo.
WORKS:
$dbh = new PDO("informix...")
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
$result = $dbh->query("asdfkjasdfkjasdfjk"); /* obvious sql error */
if ($result)
{
/* process result */
print "success!";
/* all done, didn't make any changes */
$dbh->rollback();
}
else
{
$myeCode = $dbh->errorCode();
print_r($myeCode);
};
$dbh=0; /* close connection */
I hope this helps someone else.
Cheers,
David