junaooaks 3 Denunciar post Postado Agosto 5, 2011 pessoal estou tendo problema com esta consulta ja testei direto no sql e funciona, esta aparecendo um erro PDO PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in a consulta e esta: $fi = array('nos'=>"%".$nos."%", 'tec'=>"%".$tecnico."%", 'sit'=>"%".$status."%", 'cli'=>"%".$cliente."%", 'dat'=>$dat, 'da'=>$da); $sql = $pdo->prepare("SELECT * from os a inner join cliente b on a.codCliente = b.idCliente inner join usuarios c on a.codTecnico = c.idUsuario inner join equipamento d on a.codEquipamento = d.idEquipamento inner join marca e on a.codMarca = e.idMarca inner join atendimento f on a.codAtendimento = f.idAtendimento WHERE b.pessoaJuridica LIKE :cli AND a.idOs LIKE :nos AND a.codTecnico LIKE :tec AND a.data BETWEEN ':dat' AND ':da' AND a.situacao LIKE :sit ORDER BY a.data DESC "); $sql->execute($fi); o problema esta no BETWEEN. quando eu tiro esta linha a consulta funciona normalmente Compartilhar este post Link para o post Compartilhar em outros sites
Adson aquino 2 Denunciar post Postado Agosto 5, 2011 Coloque assim. $fi = array('nos'=>"%".$nos."%", 'tec'=>"%".$tecnico."%", 'sit'=>"%".$status."%", 'cli'=>"%".$cliente."%", 'dat'=>$dat, 'da'=>$da); $sql = $pdo->prepare("SELECT * from os a inner join cliente b on a.codCliente = b.idCliente inner join usuarios c on a.codTecnico = c.idUsuario inner join equipamento d on a.codEquipamento = d.idEquipamento inner join marca e on a.codMarca = e.idMarca inner join atendimento f on a.codAtendimento = f.idAtendimento WHERE b.pessoaJuridica LIKE :cli AND a.idOs LIKE :nos AND a.codTecnico LIKE :tec AND a.data BETWEEN :dat AND :da AND a.situacao LIKE :sit ORDER BY a.data DESC "); $sql->execute($fi); Creio que agora é pra da certo. Compartilhar este post Link para o post Compartilhar em outros sites
junaooaks 3 Denunciar post Postado Agosto 5, 2011 cara estpu fazendo uns teste ainda mas me parece que deu certo tem uns dois dias tinha testado de quase tudo mas me parece que você alterou AND a.data BETWEEN ':dat' AND ':da' tirou as '' e funcionou, eu ja tinha testado assim se ''. bom estou testando ainda muito obrigado :clap: Compartilhar este post Link para o post Compartilhar em outros sites
junaooaks 3 Denunciar post Postado Agosto 8, 2011 Adson aquino me decupe mas não funcionou depois de vários testes quando uso data simplesmente me retorna todos os registro que esta no banco de dados. quem puder me da alguma dica. esta consulta sem usar o metodo PDO funciona perfeito. B) Compartilhar este post Link para o post Compartilhar em outros sites
Adson aquino 2 Denunciar post Postado Agosto 8, 2011 A data está gravada em qual formato no banco de dados? e qual formato você ta mandando fazer a busca? Compartilhar este post Link para o post Compartilhar em outros sites