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:

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');
Seulement maintenant je n'ai plus les moyens de protéger ma requête.
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 :
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']));
Je ne sais pas si je me fais bien comprendre. J'attends vos remarques.
Merci