Warning: PDOStatement::execute()

Warning: PDOStatement::execute() - PHP - Programmation

Marsh Posté le 19-01-2013 à 18:05:43    

Bonjour,
 
Voilà j'aimerais récupérer les infos de ma table produits et les mettre dans ma table panier j'utilise PDO pour communiquer avec mysql.
 
Voici le code :
 

Code :
  1. <?php
  2. session_start();
  3. include ("connect_db.php" );
  4. $Quantite=($_POST['Quantite']);//récupère la valeur de quantité
  5. $req=$bdd->prepare("SELECT ref.produits, Nom.produits, Prix.produits
  6.     FROM produits
  7.     WHERE Login = :Login " ); // on prépare notre requête, on sélectionne les champs de la table produits
  8. $req->execute(array('Login' => $_SESSION['Login']));
  9. $req = $bdd->prepare('INSERT INTO panier(ref, Nom, Quantite, Prix) VALUES(:ref.produits, :Nom.produits, :Quantite, :Prix.produits');//on prépare afin d'insérer les champs de la table produits dans la table panier.
  10. $req->execute(array(
  11. 'Login' => $_SESSION['Login'],
  12. 'Quantite' => $Quantite
  13. ));
  14. $req->closeCursor();
  15. //header("Refresh: 1; url=panier.php" );
  16. ?>


 
cependant j'ai un problème j'obtient cette Erreur: Warning: PDOStatement::execute() [<a href='pdostatement.execute'>pdostatement.execute</a>]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\wamp\www\ajouter_panier.php on line 16.
 
Qu'est ce qu'elle signifie?
 
Merci

Reply

Marsh Posté le 19-01-2013 à 18:05:43   

Reply

Marsh Posté le 20-01-2013 à 11:11:09    

Ligne 12, tu demandes à envoyer 4 paramètres.
 
Ligne 13 à 16, tu n'envoies que 2 paramètres (et en plus pas les bons).


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 20-01-2013 à 11:28:59    

Ah oui, mais j'ai une question: le param de Login je dois le laisser ? car, chaque utilisateur n'a pas nécessairement le même panier...
 
Merci

Reply

Marsh Posté le 20-01-2013 à 12:06:26    

Bonjour,
Je ne sais pas comment est fichu la totalité de votre traitement mais oui, c'est nécessaire puisque c'est grâce à votre identifiant que vous pouvez déterminer le propriétaire du panier??
Par contre, il est préférable de passer par COOKIE que SESSION, l'avantage = il permettra de conserver la commande du panier au-delà du login. Car j'imagine, on peut constituer un panier sans être connu, non?


Message édité par tsoko le 20-01-2013 à 12:07:14

---------------
Besoin d'aide pour votre projet? agence web
Reply

Marsh Posté le 20-01-2013 à 12:17:00    

non, celui qui m'a donner le cahier des charges ma clairement indiquer qu'il faut être logué pour pouvoir acheter. Et le cookie on peut lui donner une limite? Exemple: après 10min session destroy ();???
 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed