2013-06-28 14 views
8

Mam aplikację CodeIgniter i bazę danych SQL Server. Używam PDO jako sterownika, wszystko działa dobrze, ale nie wtedy, gdy próbuję zapisać dane zawierające słowa "wybierz" lub "wybór".Dane zapisane dwukrotnie, gdy zawiera słowo "wybierz" przy użyciu CodeIgniter + PDO + SQL Server

Przykład:

$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

Jeżeli nie '$ dane []' zawiera ASSOC tablicę zamiast numeryczne? –

+0

Tak, ale to nie problem. –

+1

możesz sprawdzić $ this-> db-> last_query(); – devrooms

Odpowiedz

2

Jest to błąd w sterowniku PDO ... Idę sprawdzić GitHub aby sprawdzić, czy został naprawiony lub wysłać ciągnącego go naprawić. Ten problem został rozwiązany. Polecam aktualizację instalacji codeigniter. Sklonowałam codeigniter repo @ github i nie byłam w stanie odtworzyć błędu.

tu jest błąd: linia 197 w 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(); 
     } 

tu jest dylemat:

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(); 
     } 
Powiązane problemy