【问题标题】:How to set Attribute to PDO connection in Codeigniter如何在 Codeigniter 中将属性设置为 PDO 连接
【发布时间】:2016-11-16 19:05:39
【问题描述】:

如何在 Codeigniter 中设置 PDO 数据库句柄的属性(PDO::ATTR_ERRMODE)?

【问题讨论】:

    标签: pdo codeigniter-3


    【解决方案1】:

    我认为更好的选择是使用 MY_Model(您可以扩展它,然后在整个应用程序中都可以使用它)并在构造中定义类似这样的内容:

    $this->db->conn_id->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

    注意 conn_id 允许您访问主 PDO 对象。

    【讨论】:

    • 确实是更好的方法。
    【解决方案2】:

    有两种方法:
    1. 懒惰(hacky)的方式
    将以下代码添加到 system/core/database/drivers/pdo/pdo_driver.php(在 CI 3 中):

    public function db_connect($persistent = FALSE)
    {
    
        $this->options[PDO::ATTR_PERSISTENT] = $persistent;
    
        // Added code start
        $this->options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        // Added code end
        try
        {
            return new PDO($this->dsn, $this->username, $this->password, $this->options);
        ...
    }
    

    2。正确的方式
    Extend Database Driver并添加同一行

    注意:如果您在 Codeigniter 中设置PDO::ERRMODE_EXCEPTION,即使在生产环境中也会显示异常错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-19
      • 2022-07-15
      • 1970-01-01
      • 2012-07-07
      • 2021-03-20
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多