【问题标题】:how to get a detailed error report when a php-mysql script fails?php-mysql 脚本失败时如何获取详细的错误报告?
【发布时间】:2011-08-30 17:39:18
【问题描述】:

如何在 php-mysql 脚本运行期间获得详细的错误描述?

我有以下语句,其中脚本失败并显示自定义错误消息 - “或死”的内容。

我想从 MySQL 获取实际错误(而不是我提到的自定义错误),这样可以更好地了解该场景 - 无论是数据库问题还是服务器连接问题等。

这是我需要增强错误报告的代码

$query = "SELECT * FROM table_name";
$result = mysqli_query($db_conn, $query) 
  or die('Connected to database, but querying failed');

谢谢!

【问题讨论】:

    标签: php mysql report die


    【解决方案1】:

    查看mysql_error 函数。

    【讨论】:

    • mysqli_error 实际错误:mysqli_query($db_conn, $query)
    • @onteria_ :我在上述连接和查询的过程格式中尝试了 mysqli_error,但它总是返回错误,说 mysqli_error 需要一个“xxxxx”,但提供了零......(其中 xxxx变化,有时是对象,有时是字符串等..)..你能帮我解决这里的查询吗..我希望它在查询失败时给出 php 错误消息(而不是我的客户死亡消息)。非常感谢!
    【解决方案2】:

    查看mysqli_error 的手册页。在“程序样式”部分中,您将找到一个完整的示例,该示例展示了如何设置数据库连接和查询数据库,这两个步骤都带有错误处理。

    如果您想从脚本中获取详细的错误信息,您可以输入这些行

    error_reporting( E_ALL );
    ini_set('log_errors', true);
    ini_set('error_log', '/tmp/php-errors.log');
    

    在代码的开头。这样,来自 PHP 的所有错误都将写入日志文件。确保日志文件的路径存在(/tmp 只是一个示例)并且可以被 Web 服务器写入,否则错误将被静默丢弃。

    附带说明:虽然“or die()”模式适用于小示例,但您不应该在生产代码中使用它。

    【讨论】:

      【解决方案3】:

      我更喜欢使用 PDO,并让 PDO 抛出异常。

      【讨论】:

        【解决方案4】:

        如果您正在使用它,您可以将查询插入到 phpmyadmin 上的查询页面中。但这不会告诉你错误是否与变量有关

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-06
          • 1970-01-01
          • 2019-09-15
          • 1970-01-01
          相关资源
          最近更新 更多