PHP 8.3.4 Released!

mysqli_stmt::$sqlstate

mysqli_stmt_sqlstate

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$sqlstate -- mysqli_stmt_sqlstate Возвращает код ошибки SQLSTATE, вызванной в ходе выполнения последней операции над запросом

Описание

Объектно-ориентированный стиль

Процедурный стиль

mysqli_stmt_sqlstate(mysqli_stmt $statement): string

Возвращает строку содержащую код SQLSTATE ошибки, вызванной в результате выполнения последней операции над запросом, которая может завершаться успешно или неуспешно. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок. Значения этого кода определены в стандарте ANSI SQL, а также в ODBC. Полный список возможных кодов можно посмотреть на странице » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Возвращает строку, содержащую код ошибки SQLSTATE последней совершенной операции. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
printf("Не удалось подключиться: %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)) {

/* удаляем таблицу */
$mysqli->query("DROP TABLE myCountry");

/* выполняем запрос */
$stmt->execute();

printf("Ошибка: %s.\n", $stmt->sqlstate);

/* закрываем запрос */
$stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* Открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
printf("Не удалось подключиться: %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)) {

/* удаляем таблицу */
mysqli_query($link, "DROP TABLE myCountry");

/* выполняем запрос */
mysqli_stmt_execute($stmt);

printf("Ошибка: %s.\n", mysqli_stmt_sqlstate($stmt));

/* закрываем запрос */
mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения приведённых примеров:

Ошибка: 42S02.

Примечания

Замечание:

Следует отметить, что ещё не все ошибки MySQL имеют отражение в кодах SQLSTATE. Для таких ошибок используется общий код HY000 (общая ошибка).

Смотрите также

  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top