【问题标题】:Why isn't PHP catching a MySQL error? [duplicate]为什么 PHP 没有捕捉到 MySQL 错误? [复制]
【发布时间】:2018-07-02 18:09:29
【问题描述】:

我有以下代码:

$db = new mysqli('localhost', 'xxx', 'xxx', 'dbname');

if($db->connect_errno > 0){
    die('Unable to connect to database [' . $db->connect_error . ']');
}

    try 
    {
       $db->begin_transaction();
       $db->query($q_insert_custom);
       $db->commit();
       $error_message = '';
    }
    catch (Exception $e) 
    {
       $db->rollback();
       $error_message = $e->getMessage()." **** LINE: ".$e->getLine();
    }

    echo $error_message;

$q_insert_custom 中存在一个问题,它试图插入一行但缺少必填字段。当您在 MySQL Workbench 中运行查询时,我收到有关查询的错误以及它如何丢失该字段。但是当我通过 PHP 运行它时,它不会被异常处理捕获,并且看起来查询运行得很好。

我做错了什么?当 MySQL 抛出有关查询的错误时,我如何捕获?

【问题讨论】:

标签: php exception mysqli


【解决方案1】:

快速查找 MySQL 错误的方法是检查 $db->error 中是否有消息。然后你可以把它扔到throw new Exception($db->error);,如果需要的话。

【讨论】:

    猜你喜欢
    • 2018-12-25
    • 1970-01-01
    • 2019-05-16
    • 2012-01-06
    • 1970-01-01
    • 2021-07-25
    • 2017-07-25
    • 1970-01-01
    • 2022-12-15
    相关资源
    最近更新 更多