mysqli_stmt::$sqlstate
mysqli_stmt_sqlstate
(PHP 5, PHP 7, PHP 8)
mysqli_stmt::$sqlstate -- mysqli_stmt_sqlstate — Liefert den SQLSTATE-Fehlercode der letzten Anweisung
Beschreibung
Objektorientierter Stil
Prozeduraler Stil
Gibt eine Zeichenkette mit dem SQLSTATE-Fehlercode der zuletzt aufgerufenen
Funktion (des Prepared Statements) zurück, die entweder erfolgreich oder
fehlerhaft beendet werden konnte. Der Fehlercode besteht aus fünf Zeichen.
'00000'
bedeutet kein Fehler. Die möglichen Werte sind
durch ANSI SQL oder ODBC spezifiziert. Für eine Liste möglicher Werte siehe
» http://dev.mysql.com/doc/mysql/en/error-handling.html.
Parameter-Liste
-
statement
-
Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes mysqli_stmt-Objekt.
Rückgabewerte
Gibt eine Zeichenkette mit dem SQLSTATE-Fehlercode des letzten Fehlers
zurück. Der Fehlercode besteht aus fünf Zeichen. '00000'
bedeutet kein Fehler.
Beispiele
Beispiel #1 Objektorientierter Stil
<?php
/* Datenbankverbindung öffnen */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Datenbankverbindung prüfen */
if (mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}
$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");
$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {
/* Tabelle löschen */
$mysqli->query("DROP TABLE myCountry");
/* Abfrage ausführen */
$stmt->execute();
printf("Fehler: %s.\n", $stmt->sqlstate);
/* Abfrage-Objekt schließen */
$stmt->close();
}
/* Verbindung schließen */
$mysqli->close();
?>
Beispiel #2 Prozeduraler Stil
<?php
/* Datenbankverbindung öffnen */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Datenbankverbindung prüfen */
if (mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}
mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");
$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {
/* Tabelle löschen */
mysqli_query($link, "DROP TABLE myCountry");
/* Abfrage ausführen */
mysqli_stmt_execute($stmt);
printf("Fehler: %s.\n", mysqli_stmt_sqlstate($stmt));
/* Abfrage-Objekt schließen */
mysqli_stmt_close($stmt);
}
/* Verbindung schließen */
mysqli_close($link);
?>
Die obigen Bespiele erzeugen folgende Ausgabe:
Fehler: 42S02.
Anmerkungen
Hinweis:
Anchtung! Nicht alle MySQL-Fehler können auf SQLSTATE-Codes abgebildet werden. Der Wert
HY000
(Allgemeiner Fehler) wird für nicht abgebildete MySQL-Fehler verwendet.
Siehe auch
- mysqli_stmt_errno() - Returns the error code for the most recent statement call
- mysqli_stmt_error() - Returns a string description for last statement error