但是,当遇到PHP错误时,代码仍在继续。这将导致执行数据库事务完成命令,该命令是。。。。如果有一个错误,而且所有的指令都没有正确执行,那就很糟糕了。例如,我有一个在ajax请求中执行的代码:
// start transaction
$this->db->trans_start();
try {
$this->M_debug->fblog("firstName=" . $triggerOpts->{'firstXXXName'});
$data = array("test_col" => 123);
$this->db->where("id", 4);
$this->db->update("my_table", $data);
// if got this far, process is ok
$status = "process_ok";
// complete transaction
$this->db->trans_complete();
} catch (Exception $ex) {
// output the error
$this->M_debug->logError($ex);
}
我的召唤
$this->M_debug->fblog()
只是将一个变量记录到PHP控制台中,我故意尝试记录一个不存在的变量。
这会导致一个PHP错误,我猜这是一个致命的错误,预期的结果是log命令之后的代码失败,事务没有完成。但是,在这个错误之后,尽管在Chrome控制台中报告了PHP错误,代码仍然可以继续执行,数据库被更新,事务也完成了。希望你能帮我阻止这一切发生。
非常感谢,G
编辑--
正如这里所请求的fblog(),它只是一个变量的Chrome控制台日志请求
public function fblog( $var ) {
ChromePhp::log( $var );
}