【问题标题】:Codeigniter Database error handling with sql server使用 sql server 处理 Codeigniter 数据库错误
【发布时间】:2019-12-27 11:22:47
【问题描述】:

我只想获取我的代码的数据库错误并写一个错误日志。 但它显示此错误消息。我的代码点火器版本是 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)));
        }

【问题讨论】:

    标签: php sql-server codeigniter codeigniter-2


    【解决方案1】:

    我已尝试通过一些更改来运行您的代码。添加了空数据数组并使用 db 更新了 mfunction。对 mfunctions 是什么有好处。希望对您有所帮助:

        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)));
    }
    

    【讨论】:

    • 嗨,Sachin,仍然无法正常工作。它显示相同的错误。抛出新异常($this->db->e​​rror());这是显示错误的行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 2014-12-05
    • 2011-11-03
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多