Usando corretamente LIKE com BindParam na consulta MySQL PDO
Ao tentar realizar pesquisas LIKE com bindParam em consultas MySQL PDO, é essencial usar a sintaxe correta para garantir resultados precisos.
Sintaxe otimizada
Para corresponder aos nomes de usuário começando com "a" usando bindParam, a sintaxe correta é:
$term = "a%";
Em contraste, a sintaxe fornecida na pergunta original, "$term = "'$ term%'", está incorreto, pois coloca aspas simples internas desnecessárias em torno do valor $term, o que resultaria na pesquisa de 'a%' em vez de a%.
bindParam's Role
bindParam é responsável por citar automaticamente dados de string quando eles são inseridos em instruções SQL. Portanto, anexar aspas simples manualmente não é necessário e pode levar a resultados incorretos.
Código revisado
Usando a sintaxe otimizada, o código revisado seria:
$term = "a%"; $sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10"; $core = Connect::getInstance(); $stmt = $core->dbh->prepare($sql); $stmt->bindParam(':term', $term, PDO::PARAM_STR); $stmt->execute(); $data = $stmt->fetchAll();
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3