Codeigniter 数据库错误处理与 sql 服务器



我只想获取代码的数据库错误并编写错误日志。 但它会显示此错误消息。我的代码点火器版本是 2.2.3 我使用SQL Server作为我的数据库。 我该如何解决这个问题。

Fatal error: Uncaught Error: Call to undefined method CI_DB_sqlsrv_driver::error()
try {

$this->db->trans_start(FALSE);
for ($i = 0; $i < 10; $i++) {
$data['Name'] = $i;
$this->mfunctions->insert('test1', $data);
}
for ($i = 0; $i < 10; $i++) {
$data['Name2'] = $i;
$this->mfunctions->insert('test2', $data);
}
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
throw new Exception($this->db->error());
echo "Fail";
} else {
echo "true";
}
} catch (Exception $e) {
$this->db->trans_rollback();
log_message('error', sprintf('%s : %s : DB transaction failed. Error no: %s, Error msg:%s, Last query: %s', __CLASS__, __FUNCTION__, $e->getCode(), $e->getMessage(), print_r($this->db->last_query(), TRUE)));
}

我试图通过一些更改来运行您的代码。添加了空数据数组并使用 db 更新了函数。什么是函数会很好。希望它能有所帮助:

try {
$this->db->trans_start(FALSE);
for ($i = 0; $i < 10; $i++) {
$data = array();
$data['Name'] = $i;
$this->db->insert('test1', $data);
}
for ($i = 0; $i < 10; $i++) {
$data = array();
$data['Name2'] = $i;
$this->db->insert('test2', $data);
}
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
throw new Exception($this->db->error());
echo "Fail";
} else {
echo "true";
}
} catch (Exception $e) {
$this->db->trans_rollback();
log_message('error', sprintf('%s : %s : DB transaction failed. Error no: %s, Error msg:%s, Last query: %s', __CLASS__, __FUNCTION__, $e->getCode(), $e->getMessage(), print_r($this->db->last_query(), TRUE)));
}

最新更新