(PHP 5, PHP 7, PHP 8)
mysqli::$sqlstate -- mysqli_sqlstate — Возвращает код состояния SQLSTATE последней MySQL операции
Объектно-ориентированный стиль
Процедурный стиль
Возвращает строку с SQLSTATE кодом последней ошибки. Этот код состоит из пяти
символов. '00000'
означает отсутствие ошибок. Эти коды
определены в стандарте ANSI, а также в ODBC. Посмотреть список возможных
значений можно на странице
» http://dev.mysql.com/doc/mysql/en/error-handling.html.
Замечание:
Следует заметить, что ещё не все MySQL ошибки имеют отражение в SQLSTATE кодах. Для подобных ошибок используется код
HY000
(общая ошибка).
mysql
Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect() или функция mysqli_init().
Возвращает строку с SQLSTATE кодом последней ошибки. Этот код состоит из пяти
символов. '00000'
означает отсутствие ошибок.
Пример #1 Пример использования $mysqli->sqlstate
Объектно-ориентированный стиль
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Таблица City уже существует, поэтому мы должны получить ошибку */
try {
$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Ошибка - SQLSTATE %s.\n", $mysqli->sqlstate);
}
?>
Процедурный стиль
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Таблица City уже существует, поэтому мы должны получить ошибку */
try {
mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Ошибка - SQLSTATE %s.\n", mysqli_sqlstate($link));
}
?>
Результат выполнения приведённых примеров:
Ошибка - SQLSTATE 42S01.