mysqli_query()错误记录

时间:2014-03-31 00:34:50

标签: mysqli error-logging

我有一个像这样的mysqli_query:

$result = mysqli_query($db, "INSERT INTO device(`Identifier`, `IsAllowedToPost`)
VALUES('ABC123', 0)") or die(error_log(mysqli_error($db), 3, "php_error.log"));

它不起作用,日志或者告诉我“1”,“0”或什么都没有,这取决于我尝试使用哪种方法记录错误。如何获得更好的错误消息来登录我的文件?我不知道0或1是什么意思。

当前代码在我的文件中根本没有给出任何错误消息,并且测试数据不会存储在数据库中。

1 个答案:

答案 0 :(得分:1)

像这样更改您的代码

ini_set('log_errors',1);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
mysqli_connect(credentials);
...
$result = mysqli_query($db, "INSERT INTO device(`Identifier`, `IsAllowedToPost`)
VALUES('ABC123', 0)");

在php错误日志中查看你的mysql错误。

你写的代码遭受了一些错误的前提。

  1. 您显然需要记录代码中发生的所有错误,而不仅仅是与mysql相关的错误。这种分离毫无意义。所以,你需要一个共同的日志。
  2. 您不需要为每个查询编写不同的代码。 Mysqli非常聪明,可以自动引发错误。
  3. 根据目录结构设置具有相对路径的错误日志文件将导致多个日志。