PHP的mysqli_sqlstate()函数讲解

1. mysqli_sqlstate()函数概述

mysqli_sqlstate函数返回客户端最后一次操作的SQLSTATE值,SQLSTATE是指一个5个字符的SQL状态代码,表示最后一次执行的操作的状态。如果没有执行任何操作,该值为空字符串。

1.1 SQLSTATE代码

SQLSTATE代码是由以下两部分组成:

一个2个字符的类别值,指明错误产生的分类,例如: “22”表示数据异常;

三个字符的子类代码,用于指明错误的细节,例如:“002”表示上面的错误产生于数据类型提取。

2. mysqli_sqlstate()函数语法

以下是mysqli_sqlstate()函数的语法:

mysqli::sqlstate ( void ) : string|null

参数说明:

返回值:

返回最近一条查询语句执行后,MySQL消息系统上报的警告或者错误的SQLSTATE值。如果最后一条语句执行没有产生任何警告或者错误,则返回空字符串。

2.1 mysqli_sqlstate()函数实例

下面是使用mysqli_sqlstate()函数的实例:

$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");

/* 检查连接是否成功 */

if ($mysqli->connect_errno) {

printf("Connect failed: %s\n", $mysqli->connect_error);

exit();

}

$mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");

$mysqli->query("SELECT 'This query will generate an error' FROM nowhere");

$mysqli->query("SELECT 'Bye, MySQL user!' AS _message FROM DUAL");

echo $mysqli->sqlstate;//显示该语句执行之后的SQL状态码

以上程序的执行结果是:

42S02

以上实例中,我们使用mysqli_sqlstate()函数依次执行了3条SQL语句。第一条正确执行,第二条因为语法错误而失败,第三条正确执行。因为mysqli_sqlstate只能获取最后一条执行过的SQL语句的SQLSTATE值,所以上述实例只返回了第二条语句的SQLSTATE值。

3. 总结

mysqli_sqlstate()函数可以在MySQL返回警告或者错误时,快速获取SQLSTATE代码值,方便程序的调试工作。因此,应该预计到可能会返回值而在代码中对其加以处理。

后端开发标签