PHP mysqli_error_list() 函数用法及示例

PHP MySQLi 参考手册

mysqli_error_list()函数返回最近调用函数的错误列表。

定义和用法

mysqli_error_list()函数返回最近一次 MySQLi 函数调用过程中发生的错误列表。

语法

mysqli_error_list($con)

参数

序号参数及说明
1

con(必需)

这是一个表示与MySQL Server的连接的对象。

返回值

PHP mysqli_error_list()函数返回一个列表,该列表表示执行last语句期间的错误(每个错误作为数组)。

PHP版本

此函数最初是在PHP版本5中引入的,并且可以在所有更高版本中使用。

在线示例

以下示例演示了mysqli_error_list()函数的用法(面向过程风格)-

<?php
   //建立连接
   $con = mysqli_connect("localhost", "root", "password", "mydb");

   mysqli_query($con, "CREATE TABLE Test(Name VARCHAR(10), AGE INT)");


   //执行查询
   $query = "INSERT into Test values('Raju', 25),('Rahman', 30),('Sri Rama Chandra Murthi', 25)";
   mysqli_query($con, $query);

   //错误
   $list = mysqli_error_list($con);
   print_r($list);

   //关闭连接
   mysqli_close($con);
?>

输出结果

Array
(
    [0] => Array
        (
            [errno] => 1406
            [sqlstate] => 22001
            [error] => Data too long for column 'Name' at row 3
        )

)

在线示例

在面向对象的样式中,此函数的语法为$con->error_list。以下是面向对象样式的此函数的示例-

<?php
   //建立连接
   $con = new mysqli("localhost", "root", "password", "mydb");

   //查询以检索employee表的所有行
   $con -> query("SELECT * FROM wrong_table_name");
  
   //Error 
   $list = $con->error_list;

   print_r($list);

   //关闭连接
   $con -> close();
?>

输出结果

Array
(
    [0] => Array
        (
            [errno] => 1146
            [sqlstate] => 42S02
            [error] => Table 'mydb.wrong_table_name' doesn't exist
        )

)

在线示例

假设我们有一个名为employee的表,其内容如下:

mysql> select * from employee;
+------------+--------------+------+------+--------+
| FIRST_NAME | LAST_NAME    | AGE  | SEX  | INCOME |
+------------+--------------+------+------+--------+
| Vinay      | Bhattacharya |   20 | M    |  16000 |
| Sharukh    | Sheik        |   25 | M    |  13300 |
| Trupthi    | Mishra       |   24 | F    |  31000 |
| Sheldon    | Cooper       |   25 | M    |   2256 |
| Sarmista   | Sharma       |   28 | F    |  15000 |
+------------+--------------+------+------+--------+
5 rows in set (0.06 sec)

以下是mysqli_error_list()函数的另一个示例-

<?php
   //建立连接
   $con = mysqli_connect("localhost", "root", "password", "mydb");

   //查询以选择employee表的所有行
   mysqli_query($con, "SELECT * FROM employee");
   $list = mysqli_error_list($con);
   print_r($list);

   //用于更新Employee表的行的查询
   mysqli_query($con, "UPDATE employee set INCOME=INCOME+5000 where FIRST_NAME in (*)");
   $list = mysqli_error_list($con);
   print_r($list);

   //查询以将一行插入到employee表中
   mysqli_query($con, "INSERT INTO employee VALUES (Archana, 'Mohonthy', 30, 'M', 13000, 106)");
   $list = mysqli_error_list($con);
   print_r($list);

   //关闭连接
   mysqli_close($con);
?>

输出结果

Array
(
)
Array
(
    [0] => Array
        (
            [errno] => 1064
            [sqlstate] => 42000
            [error] => 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
        )

)
Array
(
    [0] => Array
        (
            [errno] => 1136
            [sqlstate] => 21S01
            [error] => Column count doesn't match value count at row 1
        )

)

PHP MySQLi 参考手册