如何显示 mysqli_query 错误
P粉713846879
P粉713846879 2023-09-01 13:52:57
[PHP讨论组]
<p>我试图在我的php脚本中显示mysqli_error,如果查询失败,我会不断收到黑页,但在成功时返回响应,如果查询失败,mysqli_error($conn)和mysqli_errno($conn)都只是显示黑页。 这是我的数据库连接脚本</p> <pre class="brush:php;toolbar:false;">&lt;?php $ser = &quot;test&quot;; $user = &quot;test&quot;; $pass = &quot;test&quot;; $db=&quot;test&quot;; $conn = mysqli_connect($ser, $user, $pass, $db); if (!$conn) { die(&quot;Connection failed: &quot; . mysqli_connect_error()); } ?&gt;</pre> <p>我的 PHP 查询</p> <pre class="brush:php;toolbar:false;">&lt;?php include 'conn.php'; if ($conn) { $sql = &quot;INSERT INTO tbl_users (userId, email, pass) VALUES ('$userId', '$email', '$pass')&quot;; if (mysqli_query($conn, $sql)) { echo json_encode(array( &quot;status&quot; =&gt; &quot;Ok&quot;, &quot;message&quot; =&gt; &quot;Success&quot;, )); } else { echo json_encode(array( &quot;status&quot; =&gt; &quot;Error&quot;, &quot;message&quot; =&gt; mysqli_error($conn), )); } }</pre> <p>如果查询运行正确,则能够获得成功响应,但如果使用 <strong>ini_set('display_errors', 1);</strong> ,一旦发生错误,我会得到一个空白页;</strong> 我得到整页错误但我只需要 mysqli_error 或 mysqli_errno。</p>
P粉713846879
P粉713846879

全部回复(1)
P粉538462187

自 PHP 8.1 起,mysqli 错误报告的默认设置为 MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT,这会导致错误抛出异常,而不仅仅是返回 false

如果您想检查代码中的错误而不是获取异常,请使用

mysqli_report(MYSQLI_REPORT_OFF);

更好的解决方案是使用异常处理程序。

if ($conn) {
    $sql = "INSERT INTO tbl_users (userId, email, pass) VALUES ('$userId', '$email', '$pass')";
    try {
        mysqli_query($conn, $sql);
        echo json_encode(array(
            "status" => "Ok",
            "message" => "Success",
        ));
    catch (mysqli_sql_exception $e) {
        echo json_encode(array(
            "status" => "Error",
            "message" => $e->getMessage()
        ));
    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号