Dutch PHP Conference 2019

PDO::errorCode

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

PDO::errorCodeVeritabanındaki son işlemle ilgili SQLSTATE kodunu döndürür

Açıklama

mixed PDO::errorCode ( void )

Dönen Değerler

ANSI SQL-92 standardında tanımlanan beş karakterlik abecesayısal bir hata tanıtıcısı (SQLSTATE) döndürür. Bir SQLSTATE iki karakterlik ana hata sınıfı değerinin ardına eklenmiş üç karakterlik alt sınıf değerinden oluşur. 01 ana sınıf değeri bir uyarı belirtir ve SQL_SUCCESS_WITH_INFO dönüş kodu ile birlikte bulunur. '01' ve 'IM' sınıfları dışındaki tüm sınıf değerleri bir hata belirtir. 'IM' sınıfı PDO gerçekleniminden (ve ODBC sürücüsünü kullanıyorsanız ODBC'den) türetilen uyarılar ve hatalar ile ilgilidir. Herhangi bir sınıfın '000' alt sınıf değeri o SQLSTATE için bir alt sınıfın olmadığını belirtir.

PDO::errorCode() sadece doğrudan veritabanı tanıtıcısında yürütülen işlemlerin hata kodlarını döndürür. PDO::prepare() veya PDO::query() ile bir PDOStatement nesnesi oluşturup deyim tanıtıcısı üzerinde oluşan bir hatayla ilgili bilgi alacaksanız PDOStatement::errorInfo() yöntemini kullanmalısınız.

Veritabanı tanıtıcısında yürütülmüş bir işlem yoksa NULL döner.

Örnekler

Örnek 1 - Bir SQLSTATE kodunun döndürülmesi

<?php
/* Bir hata oluşturalım --BONES diye bir tablo olmasın */
$dbh->exec("INSERT INTO bones(skull) VALUES ('lucy')");

echo 
"\nPDO::errorCode(): ";
print 
$dbh->errorCode();
?>

Yukarıdaki örneğin çıktısı:

PDO::errorCode(): 42S02

Ayrıca Bakınız

add a note add a note

User Contributed Notes 2 notes

up
21
Matthias Leuffen
12 years ago
Hi,

List containing all SQL-92 SQLSTATE Return Codes:
http://www.unix.org.ua/orelly/java-ent/jenut/ch08_06.htm

Use the following Code to let PDO throw Exceptions (PDOException) on Error.

<?PHP
$pdo
= new PDO (whatever);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
   
$pdo->exec ("QUERY WITH SYNTAX ERROR");
} catch (
PDOException $e) {
    if (
$e->getCode() == '2A000')
        echo
"Syntax Error: ".$e->getMessage();
}
?>

Bye,
  Matthias
up
1
runrioter at gmail dot com
3 years ago
This reading says that "Returns NULL if no operation has been run on the database handle".

When I tested it based on pdo-mysql, I got 00000, not NULL!
To Top