使用CodeIgniter + PDO + SQL Server包含"select"字时,数据保存两次

JC *_*ama 8 php sql-server pdo codeigniter

我有一个CodeIgniter应用程序和SQL Server数据库.我正在使用PDO作为驱动程序,一切正常,但是当我试图保存包含单词"select"或"selection"的数据时.

例:

$data = array();
$data[] = array('title' => 'all you neeed', 'description' => 'description here');
$data[] = array('title' => 'try this selection', 'description' => 'description here');

$this->db->insert_batch($this->table, $data);
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 2

这是 pdo 驱动程序中的一个错误...我将检查 github 以查看此问题是否已修复或发送拉取请求来修复它。这个问题已被解决。我建议更新您的 codeigniter 安装。我克隆了 codeigniter repo @ github 并且无法复制该错误。

这是错误:pdo_driver.php 中的第 197 行

if (is_numeric(stripos($sql, 'SELECT')))
        {
            $this->affect_rows = count($result_id->fetchAll());
            $result_id->execute();
        }
        else
        {
            $this->affect_rows = $result_id->rowCount();
        }
Run Code Online (Sandbox Code Playgroud)

这是修复方法:

if (is_numeric(stripos($sql, 'SELECT')) && stripos($sql, 'SELECT') == 0)
        {
            $this->affect_rows = count($result_id->fetchAll());
            $result_id->execute();
        }
        else
        {
            $this->affect_rows = $result_id->rowCount();
        }
Run Code Online (Sandbox Code Playgroud)