Vinícus, repare como a string de consulta está sendo criada

DELETE FROM `pa_usuario` WHERE `confirmado!=` 's' AND `data_registro<=`
'2008-12-03'

Evidentemente nenhum banco vai aceitar isso, pois vc está fazendo o seguinte

WHERE `campo !=` ‘s’

Repare que ele está colocando o operador dentro do campo.

 

Para resolver, coloque um true no final do $this->db->where(‘campo !=’, ‘s’,
true).

 

Se não for true é false. Malz, eu não lembro.

 

Mas de qualquer forma, está escrito no manual. Foi uma das coisas que não me
agradou nesta versão. Fizeram que uma forma que se vc atualizar de uma
versão antiga para a 1.7, os scripts podem parar de funcionar.

 

De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Em nome de Vinicius Cruz
Enviada em: quarta-feira, 10 de dezembro de 2008 16:54
Para: CodeIgniter Brasil
Assunto: [CodeIgniter] Bug where?

 

Galera, me confirma se isso é de fato um bug da versão 1.7

 

No manual tem assim:

You can include your own operators using this method as well:
$array = array('name !=' => $name, 'id <' => $id, 'date >' => $date);
$this->db->where($array);

Eu estou usando assim: 

array('confirmado!='=>'s', 'data_registro<='=>$data_vencimento)

E está retornando o erro:

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near ''s' AND
`data_registro<=` '2008-12-03'' at line 2

DELETE FROM `pa_usuario` WHERE `confirmado!=` 's' AND `data_registro<=`
'2008-12-03'

 

Já vi na lista que basta colocar um false como parâmetro, pra o CI não
escapar a query, mas imagine que eu tenha trezentas consultas desse tipo.
Sacanagem sair procurando uma por uma, pra alterar isso... =/

Vinicius

_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a