【发布时间】: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 抛出有关查询的错误时,我如何捕获?
【问题讨论】:
-
我们怎么知道?
$db->query()是做什么的?来自mysqli? -
你确定那些 MySQLi 方法会抛出异常吗?
-
你能包含分配
$db的代码吗?你在用mysqli吗? -
如果来自
mysqli::query:失败返回FALSE php.net/manual/en/mysqli.query.php