Bonjour,
Voilà mon problème :
Dans le cadre d'un moteur de recherche, je réalise une boucle pour obtenir une partie de ma requête en fonction du nombre de mot-clés:
Seulement maintenant je n'ai plus les moyens de protéger ma requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) { $valeur_requete .= ' AND CONCAT_WS(\' \',analyses.analyse,analyses.synonyme) LIKE \'%' . $mot_cle[$nombre_mots_boucle] . '%\''; } $valeur_requete = ltrim($valeur_requete,' AND');
Avec un 'prepare' cela ne fonctionne pas et je n'ai pas non plus, évidemment, la possibilité de faire un mysql_real_escape_string...
Alors comment je peux m'y prendre ?
Je vous donne ma requête :
Je ne sais pas si je me fais bien comprendre. J'attends vos remarques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $reponse_analyses = $bdd->prepare('SELECT * FROM analyses INNER JOIN laboratoires ON analyses.laboratoire = laboratoires.id WHERE ? ? ORDER BY laboratoires.ordre,analyses.analyse,analyses.nature ASC') or die(print_r($bdd->errorInfo())); $reponse_analyses->execute(array($valeur_requete, $_SESSION['filtre_labo']));
Merci
Partager