Requete préparée avec tableau

Répondre


Cette question est un moyen de lutter contre les publications automatisées indésirables.
Émoticônes
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Accéder à davantage d’émoticônes
  Revue du sujet
 

  Étendre la vue Revue du sujet : Requete préparée avec tableau

Re: Requete préparée avec tableau

par modjo38 » 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 ?

Re: Requete préparée avec tableau

par kevin254kl » 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.

Requete préparée avec tableau

par modjo38 » 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 ! :)