Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

junaooaks

[Resolvido] consulta usando pdo

Recommended Posts

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.