Requete préparée avec tableau

modjo38
Invité n'ayant pas de compte PHPfrance

15 janv. 2019, 13:28

Bonjour,

J'ai besoin d'un petit coup de main. Je rencontre un problème pour effectuer une requête SQL un peu spéciale :

Je récupère un tableau contenant des id ($commandProducts). Ce tableau est généré suite à une interaction avec le visiteur. Il contient donc un nombre variable d'id à chaque requête, selon le choix du visiteur.

Je cherche ensuite à récupérer l'ensemble des informations relatives à mes produits, en fonction des id dont je dispose dans mon tableau.

J'ai donc tenté d'effectuer une requête préparée :
$commandProductsKeys = "('" . implode("','", array_keys($commandProducts)) . "')";

$query = $db->prepare('SELECT * FROM products WHERE id IN ?');
$query->execute([$commandProductsKeys]);
Or cela ne fonctionne pas, auriez-vous une solution à m'apporter afin d'effectuer ma requête SVP ?

Je vous remercie par avance ! :)

Eléphant du PHP | 325 Messages

16 janv. 2019, 11:25

Bonjour,

Pourquoi ne pas utiliser une table temporaire(simple suggestion)? Sinon pour ton soucis on ne peut pas associer plusieurs valeurs à un marqueur http://php.net/manual/fr/pdo.prepare.php
Mais tu peux par exemple faire une boucle sur ton array puis ajouter un marqueur à chaque tour de boucle sur ta chaîne sql.

modjo38
Invité n'ayant pas de compte PHPfrance

21 janv. 2019, 16:39

Merci pour ta réponse Kevin. Bon alors déjà je sais maintenant que l'on ne peut pas passer une variable contenant un tableau dans un marqueur, même si ça m'aurait arrangé.
Effectivement la boucle me paraît être une bonne idée, je n'y avait même pas pensé... #-o
Et qu'entends-tu par utiliser une table temporaire ?