Eu tenho um sistema pronto e funcional e estou atualizando-o para utilizá-lo com PDO, pois estou a mudar de servidor onde terei suporte para tal.
No meu sistema é possível realizar uma busca com a seguinte consulta (Por alto):
$sql = mysql_query("SELECT * FROM exemplo WHERE nome LIKE '%$termo%' ");Sendo que a variável $termo recebe uma expressão relativa igual à:
$termo = str_replace(" ","%' AND nome LIKE '%", $termo);
No caso, o usuário escreve "Casa Vermelha" e a função substitui os espaços pela expressão relativa.
Que na consulta vai parar deste jeito...
$sql = mysql_query("SELECT * FROM exemplo WHERE nome LIKE '%Casa%' AND nome LIKE '%Vermelha%' ");
A questão é, no pdo isto não funciona...
Na consulta preparada: (exemplo)
$buscarLocais=$conexao->prepare("SELECT * FROM exemplo WHERE nome LIKE ?");
$buscarLocais->bindValue(1, "%$termo%");
$buscarLocais->execute();
A variável recebe a mesma modificação, mas isto não resulta em uma query e sim em uma simples expressão no lugar do "?"
O único modo em que tentei e foi possível, foi este:
$buscarLocais=$conexao->prepare("SELECT * FROM exemplo WHERE nome LIKE '%$termo%' ");
$buscarLocais->execute();
Mas creio eu que deste modo o PDO perde seu objetivo de tornar a query segura.
Então galera, como posso resolver este probleminha?
Pergunta
sauloroos
No caso, o usuário escreve "Casa Vermelha" e a função substitui os espaços pela expressão relativa.
A questão é, no pdo isto não funciona...
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.