Criteria não funciona Estou fazendo um filtro usando múltiplos criteria o resultado final fica este (((disciplina_id = '60' AND (professor_id != '29' AND publica = 'S')) OR (professor_id = '29' AND disciplina_id = '60'))) colocando no while do sql funciona perfeitamente (no hostgator) no meu computador com servidor local também No Hostgator aplicando o criteria da erro Exceção SQLSTATE[HY093]: Invalid paramet...
TB
Criteria não funciona  
Estou fazendo um filtro usando múltiplos criteria
o resultado final fica este (((disciplina_id = '60' AND (professor_id != '29' AND publica = 'S')) OR (professor_id = '29' AND disciplina_id = '60')))
colocando no while do sql funciona perfeitamente (no hostgator)
no meu computador com servidor local também
No Hostgator aplicando o criteria da erro
Exceção
SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
Para mim, não estão faltando parâmetros

O que pode estar errado?
Todos os outros filtros funcionam epenas esse da erro.

Obrigado

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (1)


MA

Boa tarde
Simplifica sua query que fica melhor de mapear seus parametros
disciplina_id = '60' AND (publica = 'S' OR professor_id = '29' )


Por exemplo ficaria assim:
 
  1. <?php
  2. // seu código ......
  3. try
  4. {
  5. TTransaction::open('banco'); // abre uma transação
  6. $conn = TTransaction::get(); // obtém a conexão
  7. $sth = $conn->prepare('SELECT * sua_tabela
  8. WHERE disciplina_id = ? AND (publica = ? OR professor_id = ? )');
  9. $sth->execute(array(60,'S', 29));
  10. $result = $sth->fetchAll();
  11. // exibe os resultados
  12. foreach ($result as $row)
  13. {
  14. // $row é um array que corresponde um registro na tabela
  15. }
  16. TTransaction::close(); // fecha a transação.
  17. }
  18. catch (Exception $e)
  19. {
  20. new TMessage('error', $e->getMessage());
  21. }
  22. Boa tarde e espero ter ajudado!