为什么PHP没有捕获MySQL错误?

时间:2018-01-23 20:02:18

标签: php exception mysqli

我有以下代码:

$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抛出有关查询的错误时,如何捕获?

1 个答案:

答案 0 :(得分:0)

查找MySQL错误的一种快捷方法是检查Sub AddHardware() Range("b5:m6").Copy Sheets("MTO").Range("B" & rows.Count).End(xlUp).Offset(1, 0) End Sub 中是否有消息。然后,如果需要,你可以抛出它$db->error