Bonjour
Je sèche sur une requete PDO un peu particulière et j'ai besoin de vos lumières.
Je voudrai faire un SELECT contenant un "in"; et en utilisant un tableau qui contient toutes les valeurs du in. Pour ainsi avoir une requete du style :
select count(1) as total from personne p where p.id_etablissement = 1 and p.id_role in ('ADMIN','ENS_NON') and nom > 'A'
Pour cela je fais :
Code :
- $in = "'".implode("','", $tableau_role)."'";
- $requete = $bdd->prepare('select count(1) as total
- from personne p
- where p.id_etablissement = :id_etablissement
- and p.id_role in :id_role
- and nom >= :nom_personne');
- $requete->bindValue(':id_etablissement',$id_etablissement, PDO::PARAM_INT);
- $requete->bindValue(':id_role', "(".$in." )", PDO::PARAM_STR);
- $requete->bindValue(':nom_personne', $nom_personne, PDO::PARAM_STR);
- print_r($requete);
- $requete->execute() or die(print_r($requete->errorInfo()));
|
Qaund je débuggue, j'obtiens bien que la variable $in contient ce qu'il faut, par exemple : 'ADMIN','ENS_NON'
Et pourtant j'ai toujours une erreur de requete sql :
Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''(\'ADMIN\',\'ENS_NON\')' and nom >= 'A'' at line 4'
Je suis généralement assez habitué à ce genre de requete, mais là je séche.
Vos lumière me seront utilises.
Merci
Dominique