mysqli_error详解

发布时间:2023-05-20

一、什么是mysqli_error

mysqli_error是MYSQLI扩展中的一个函数,用来获得上一次MYSQLI操作产生的文本错误信息,mysqli_error必须和mysqli_connect或mysqli_init一起使用。mysqli_error() 函数返回最近执行的操作的错误描述。如果没有错误返回空字符串。

二、mysqli_error函数的语法

mysqli_error : ( mysqli $link ) : string

三、如何正确使用mysqli_error

使用mysqli_error一般都是和mysqli_connect以及mysqli_query联用,以下是一个简单的示例:

$conn  = mysqli_connect($host,$user,$pwd);
if(!$conn){
	die('连接失败:'.mysqli_error());
}

mysqli_select_db($conn,$db);
$result=mysqli_query($conn,$sql);
if(!$result){
	die('查询失败:'.mysqli_error());
}

四、mysqli_error应用实例与说明

1、连接错误处理

如果连接MYSQL数据库出错,我们该如何做错误处理呢?下面是一个示例:

$conn  = mysqli_connect($host, $user, $pwd);
if(!$conn){
	die('连接失败:'.mysqli_error());
}

当连接失败时,会输出一个错误信息。而mysqli_error()会返回最近一次函数调用的最后一个错误信息,这样我们就能够很轻松的得到错误信息了。

2、查询错误处理

如果查询MYSQL数据库出错,我们应该如何处理呢?下面是一个示例:

$conn = mysqli_connect($host,$user,$pwd,$dbName);
if(!$conn){
 die("连接失败:".mysqli_error());
 exit();
}
$sql="SELECT * FROM `table`";
mysqli_query($conn,$sql) or die(mysqli_error($conn));

在SQL查询执行期间出现错误时,PHP的mysqli_query将会返回false。我们可以在mysqli_query执行失败的情况下,使用mysqli_error输出错误信息。

3、mysqli_error使用小技巧

有时我们需要将mysqli错误信息记录到文件或发送到管理员电子邮件,如下是一个使用小技巧的示例:

$conn = mysqli_connect($host,$user,$pwd,$dbName);
if(!$conn){
  $msg = sprintf("连接失败: %s", mysqli_connect_error());
  error_log($msg);
  exit();
}

$sql="SELECT * FROM `table`";
$result=mysqli_query($conn,$sql) or die("查询失败:".mysqli_error($conn));

这里通过PHP的error_log函数将错误写入到错误日志文件中。我们也可以将错误信息发送到管理员电子邮件。

五、mysqli_error常见的错误信息

MYSQLI错误信息多种多样,下面是一些常见的MYSQLI错误信息:

1、mysqli连接失败

连接失败未指定任何错误消息:mysqli_connect() expects at least 1 parameter, 0 given in file

2、数据库连接失败

数据库连接失败提示mysql_select_db() expects parameter 2 to be resource, boolean given in file

3、查询执行失败

查询执行失败提示mysqli_query() expects at least 2 parameters, 1 given in file

4、sql查询错误

sql查询错误提示You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-' at line 1

六、总结

通过本文的介绍,我们了解了mysqli_error函数的用法和相关注意事项。在实际代码开发中,对mysqli_error的理解和应用将会成为我们编写更加健壮的代码的一项重要基础。