English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Функция mysqli_sqlstate() возвращает последний код ошибки SQLSTATE.
mysqli_sqlstate()函数返回一个包含 SQLSTATE 错误码的字符串,表示上一次 SQL 操作的错误。 错误码是由 5 个字符构成,'00000' 表示没有发生错误。 错误码是由 ANSI SQL 和 ODBC 定义的。
注意: 需要注意的是,并不是所有的 MySQL 错误都映射到 SQLSTATE 了, 未映射的错误消息使用 HY000(综合错误)表示。
mysqli_sqlstate($con)
序号 | 参数及说明 |
---|---|
1 | con(必需) 这是一个表示与MySQL Server的连接的对象。 |
PHP mysqli_sqlstate()函数返回一个字符串值,该字符串值表示在上一次MySQL操作期间发生的SQLSTATE错误。如果没有错误,则此函数返回00000。
此函数最初是在PHP版本5中引入的,并且可以在所有更高版本中使用。
以下示例演示了mysqli_sqlstate()函数的用法(面向过程风格)-
<?php //建立连接 $con = mysqli_connect("localhost", "root", "password", "mydb"); //查询以检索表的所有记录 mysqli_query($con, "Select * from WrongTable"); //SQL State $state = mysqli_sqlstate($con); print("SQL状态错误: \ //Закрыть соединение mysqli_close($con); ?>
Результат вывода
SQL状态错误: 42S02
在面向对象风格中,此函数的语法为$con->sqlstate。以下是面向对象风格此函数的示例-
<?php //建立连接 $con = new mysqli("localhost", "root", "password", "mydb"); //查询以检索employee表的所有记录 $con -> query("Select FIRST_NAME, LAST_NAME, AGE form employee"); //SQL State $state = $con->sqlstate; print("SQL状态错误: \ //Закрыть соединение $con -> close(); ?>
Результат вывода
SQL状态错误: 42000
以下是mysqli_sqlstate()函数的另一个示例-
<?php //建立连接 $con = mysqli_connect("localhost", "root", "password", "mydb"); //查询以选择employee表的所有行 mysqli_query($con, "SELECT * FROM employee"); print("SQL State Error: ". mysqli_sqlstate($con)."\n"); //Запрос для обновления строки в таблице employee mysqli_query($con, "UPDATE employee set INCOME=INCOME+5000 where FIRST_NAME in (*)"); print("SQL State Error: ". mysqli_sqlstate($con)."\n"); //Запрос для вставки строки в таблицу employee mysqli_query($con, "INSERT INTO employee VALUES (Archana, 'Mohonthy', 30, 'M', 13000, 106)"); print("SQL State Error: ". mysqli_sqlstate($con)."\n"); //Закрыть соединение mysqli_close($con); ?>
Результат вывода
SQL State Error: 00000 SQL State Error: 42000 SQL State Error: 42S22
Возвратить код ошибки SQLSTATE последней операции MySQL:
<?php $connection_mysql = mysqli_connect("localhost", "root", "password", "mydb"); if (mysqli_connect_errno($connection_mysql)){ echo "Не удалось подключиться к MySQL: ". mysqli_connect_error(); } //Предположим, что в базе данных mydb уже есть таблица Persons $sql = "CREATE TABLE Persons (Firstname VARCHAR(30),Lastname VARCHAR(30),Age INT)"; if (!mysqli_query($connection_mysql,$sql)){ echo "SQLSTATE ошибка: ". mysqli_sqlstate($connection_mysql); } mysqli_close($connection_mysql); ?>
Результат вывода
SQLSTATE ошибка: 42S01