mysql PDO comment lier COMME
Dans cette requête
select wrd from tablename WHERE wrd LIKE '$partial%'
J'essaie de lier la variable '$partial%'
avec PDO. Vous ne savez pas comment cela fonctionne avec les %
à la fin.
Serait-il
select wrd from tablename WHERE wrd LIKE ':partial%'
où :partial
est lié à $partial="somet"
ou serait-il
select wrd from tablename WHERE wrd LIKE ':partial'
où :partial
est lié à $partial="somet%"
ou serait-il quelque chose de totalement différent?
- La dernière option devrait fonctionner
- ...sans guillemets
Vous devez vous connecter pour publier un commentaire.
On pourrait aussi dire:
à faire la chaîne de rejoindre le MySQL fin, pas qu'il y ait une raison particulière à ce cas.
Les choses deviennent un peu plus compliqué si l'partielle
wrd
vous cherchez peut lui-même contenir un pourcentage ou le caractère de soulignement (puisque ceux-ci ont une signification particulière pour l'opérateur LIKE) ou une barre oblique inverse (qui MySQL utilise qu'une autre couche d'échapper à l'opérateur LIKE — à tort, selon la norme SQL ANSI).J'espère que ça ne vous affecte pas, mais si vous avez besoin pour obtenir ce cas, à droite, voici le désordre solution:
LIKE
clause et injecter indésirables sql.Because str_replace() replaces left to right
alors d'abord, la+
obtient échappé, alors%
et à la fin de la_
... donc pas de +++++++++ 🙂À l'aide d'interrogation paramètres:
http://www.php.net/manual/en/pdo.prepare.php
Vous pouvez utiliser addcslashes avant d'instruction préparée. J'ai testé sur mysql.
Je pense que l'on a accepté de répondre (par @bobince) peut être simplifié un peu.
Vous pouvez le réduire à quelque chose de ce genre pour gérer trait de soulignement, pourcentage, etc dans les param mais toujours correspondre à l'INSTAR de la requête partiellement%:
Le code ci-dessous, il montre seulement le premier des mots clés dans la base de données!
Essayer celui-ci si vous souhaitez rechercher tous les mots clés de la base de données
C'est la façon dont vous devriez le faire
Merci,
Qwerty
Qui a écrit le answare (peut être karim79):
Un grand merci à lui. J'étais à la recherche pour le code & a vu de nombreux exemples, mais je n'arrivais pas à résoudre mon problème. Cette fois, j'ai réussi à le faire. J'ai utilisé le 'a l'Aide d'interrogation des paramètres:' la section du code.
Pour d'autres de l'aide, si vous voulez récupérer la valeur d'une variable, vous pouvez modifier le code pour
au lieu de
Parce que le mot "partielle" est spécifié dans la réponse et ne peut pas être changé. Merci beaucoup.