(PHP 5, PHP 7)
mysqli_stmt::$sqlstate -- mysqli_stmt_sqlstate — Gibt den SQL-Status von der vorangegangenen Ausführung der Anweisung zurück
Objektorientierter Stil
Prozeduraler Stil
Gibt einen String mit dem SQL-Status-Fehlercode zurück der zuletzt aufgerufenen
Funktion (des Prepared Statements), die entweder erfolgreich oder fehlerhaft
beendet werden konnte.
Der Fehlercode besteht aus fünf Zeichen. '00000'
bedeutet keinen
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.
stmt
Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.
Gibt einen String mit dem SQL-Status-Fehlercode des letzten Fehlers zurück.
Der Fehlercode besteht aus fünf Zeichen. '00000'
bedeutet keinen
Fehler.
Hinweis:
Anchtung! Nicht alle MySQL-Fehler können auf SQL-Status-Codes abgebildet werden. Der Wert
HY000
(Allgemeiner Fehler) wird für nicht abgebildete MySQL-Fehler verwendet.
Beispiel #1 Objektorientierter Stil
<?php
/* Datenbankverbindung öffnen */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Datenbankverbindung prüfen */
if (mysqli_connect_errno()) {
printf("Connect failed: %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("Error: %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("Connect failed: %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("Error: %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:
Error: 42S02.