Requête SQL PHP préparée pour chercher une des valeurs d'un tableau
Bonjour
Je suis en train de passer au crible toutes les requêtes sql d'un code que j'ai rédigé il y a un petit moment pour les transformer en requêtes préparées avec prepare et execute(array()). Cependant, j'avais rédigé une requête que je ne parviens pas à traduire proprement :
Code:
1 2 3 4 5 6 7
|
$requete = "";
foreach ($_POST['perso'] as $key => $value) {
$requete = $requete . 'clef=\'Personnage\' AND valeur=\''.$value.'\'' . " OR ";
}
$requete = $requete . "0=1";
$req = $bdd->query('SELECT * FROM options WHERE '.$requete.' ORDER BY sequence ASC'); |
Ce que fait ce code :
- On récupère dans $_POST une liste de clé et de valeurs
- On veut récupérer toutes les ligne avec au moins une valeur
- Pour ça on fait une requête partielle avec les conditions, du type
Code:
'clef=\'Personnage\' AND valeur=\'valeur1'\' OR clef=\'Personnage\' AND valeur=\'valeur1\' ... OR'
- On conclue par "0=1" pour échapper le dernier OR
- On envoie la requête
Le problème : on ne sait pas ce qu'il y a dans $_POST. En particulier, il peut y avoi des guillemets échappatoires et autres fantaisies de ce type. Je voudrais donc utiliser plutôt une requête préparé, mais je n'ai pas d'idée. Quelqu'un a t il déjà rencontré ce type de cas?
Merci beaucoup pour votre aide