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代码值,方便程序的调试工作。因此,应该预计到可能会返回值而在代码中对其加以处理。