(PHP 5, PHP 7, PHP 8)
mysqli::$sqlstate -- mysqli_sqlstate — Liefert den SQLSTATE-Fehler der letzten MySQL-Operation
Objektorientierter Stil
Prozeduraler Stil
Gibt eine Zeichenkette zurück, die den SQLSTATE-Fehlercode für den letzten
Fehler enthält. Der Fehlercode besteht aus fünf Zeichen.
'00000'
bedeutet, dass kein Fehler aufgetreten ist. Die
Werte werden durch ANSI-SQL und ODBC festgelegt. Eine Liste der möglichen
Werte ist unter
» http://dev.mysql.com/doc/mysql/en/error-handling.html zu
finden.
Hinweis:
Es ist zu beachten, dass noch nicht alle MySQL-Fehler zu SQLSTATEs zugeordnet sind. Für Fehler, die noch nicht zugeordnet sind, wird der Wert
HY000
(allgemeiner Fehler) verwendet.
mysql
Nur bei prozeduralem Aufruf: ein von mysqli_connect() oder mysqli_init() zurückgegebenes mysqli-Objekt.
Gibt eine Zeichenkette zurück, die den SQLSTATE-Fehlercode für den letzten
Fehler enthält. Der Fehlercode besteht aus fünf Zeichen.
'00000'
bedeutet, dass kein Fehler aufgetreten ist.
Beispiel #1 $mysqli->sqlstate-Beispiel
Objektorientierter Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Da die Tabelle City bereits existiert, sollte ein Fehler auftreten */
try {
$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Fehler - SQLSTATE %s.\n", $mysqli->sqlstate);
}
Prozeduraler Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Da die Tabelle City bereits existiert, sollte ein Fehler auftreten */
try {
mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Fehler - SQLSTATE %s.\n", mysqli_sqlstate($link));
}
Die obigen Bespiele erzeugen folgende Ausgabe:
Fehler - SQLSTATE 42S01.