2013-06-28 7 views
8

私はCodeIgniterアプリケーションとSQL Serverデータベースを持っています。ドライバとしてPDOを使用していますが、すべて正常に動作しますが、「選択」または「選択」という単語が含まれているデータを保存しようとしているときは表示されません。CodeIgniter + PDO + SQL Serverを使用して「選択」ワードを含むとデータが2回保存される

例:

$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); 
+0

は '$データは[]'の代わりに数字のASSOC配列が含まれているべきではないでしょうか。 –

+0

はい、それは問題ではありません。 –

+1

あなたは$ this-> db-> last_query()をチェックできますか? – devrooms

答えて

2

これはPDOドライバのバグです...私は、これは修正されているかどうかを確認するためにgithubのを確認するか、それを修正するために、プルリクエストを送信するつもりです。この問題は修正されました。私はあなたのcodeigniterのインストールを更新することをお勧めします。私はcodeigniter repo @ githubをクローンし、エラーを再現できませんでした。ここ

はバグです:ライン197

pdo_driver.phpで
if (is_numeric(stripos($sql, 'SELECT'))) 
     { 
      $this->affect_rows = count($result_id->fetchAll()); 
      $result_id->execute(); 
     } 
     else 
     { 
      $this->affect_rows = $result_id->rowCount(); 
     } 

ここで修正です:

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(); 
     } 
関連する問題