PHP 8.4.0 RC4 available for testing

PDO::errorCode

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

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

Açıklama

public PDO::errorCode(): ?string

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

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(): ", $dbh->errorCode();
?>

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

PDO::errorCode(): 42S02

Ayrıca Bakınız

add a note

User Contributed Notes 2 notes

up
41
Matthias Leuffen
18 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
To Top