Partage
  • Partager sur Facebook
  • Partager sur Twitter

variable avec requête préparée

ldz

Sujet résolu
    5 mai 2011 à 15:38:38

    Vraiment navré de plusieurs de mes posts aujourd'hui, mais je ne peux pas passer à un autre exercice si je n'arrive pas à faire fonctionner un code, c'est plus fort que moi. Donc
    <?php $req_insert_var = $bdd->prepare('INSERT INTO jeux_video(nom,possesseur,console,prix,nbre_joueurs_max,commentaires) VALUES(:nom,possesseur,:console,:prix,:nbre_joueurs_max,:commentaires)') or die(print_r($bdd->errorInfo()));
    $req_insert_var->execute(array(
    'nom' => $nomajout,
    'possesseur' => $possesseurajout,
    'console' => $consoleajout,
    'prix' => $prixajout,
    'nbre_joueurs_max' => $nbre_joueurs_maxajout,
    'commentaires' => $commentairesajout,
    ));
    echo $nomajout.'ajouté depuis, variable dans la page index.php<br>';
    ?>
    

    J'espère que c'est pas encore un caractère manquant. Ici les variables sont définies.
    • Partager sur Facebook
    • Partager sur Twitter
      5 mai 2011 à 15:44:56

      Peut-être que si tu nous dis quel est le problème...

      Et c'est du code php pas sql, colore correctement stp !
      • Partager sur Facebook
      • Partager sur Twitter
        5 mai 2011 à 15:49:35

        Alors simplement que l'entrée dans la table jeux_video ne s'ajout pas...
        • Partager sur Facebook
        • Partager sur Twitter
          5 mai 2011 à 16:29:04

          Active les erreurs PDO plutot que d'utiliser ce moche or die...

          Ajoute
          $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

          Juste en dessous de ta CONNEXION
          • Partager sur Facebook
          • Partager sur Twitter
            5 mai 2011 à 17:03:59

            Citation : Taguan

            Active les erreurs PDO plutot que d'utiliser ce moche or die...

            Ajoute
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

            Juste en dessous de ta CONNEXION



            Mais je ne sais même pas à quoi cela sert... Je l'ai mis, mais il fait quoi !? Après le $pdo je l'utilise où?
            Et en plus je pense que c'est pas de là, que vient le problème. Car il n'ajout simplement pas l'entrée que j'ai entré en php. Il l'ajout pas dans ma table :S et il me dit aucune erreur.
            • Partager sur Facebook
            • Partager sur Twitter
              5 mai 2011 à 17:11:03

              Ah merde, c'est pas $pdo toi, c'est $bdd

              Et je t'ai dit, ça active les erreurs PDO. Donc mets ça (en changeant $pdo par $bdd) et enlève moi tes or die().
              • Partager sur Facebook
              • Partager sur Twitter
                5 mai 2011 à 17:14:31

                Citation : Taguan

                Ah merde, c'est pas $pdo toi, c'est $bdd

                Et je t'ai dit, ça active les erreurs PDO. Donc mets ça (en changeant $pdo par $bdd) et enlève moi tes or die().



                Ouais, ouais j'ai regarder sur google ^^ j'ai mis après $bdd j'ai enlevé le or die() mais ca me gère pas d'erreur c'est normal ? Tout le code est bon cela veut dire ? L'ajout d'une entrée en SQL par PHP ca marche mais quand je passe ces paramètre, bah elle ne s'ajoute pas l'entrée...
                • Partager sur Facebook
                • Partager sur Twitter
                  5 mai 2011 à 17:16:05

                  ...Et tes erreurs PHP elles sont activées ?? T'as une virgule en trop à la fin de l'array que tu passes dans execute...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 mai 2011 à 17:30:12

                    Citation : Taguan

                    ...Et tes erreurs PHP elles sont activées ?? T'as une virgule en trop à la fin de l'array que tu passes dans execute...


                    Je vien d'activer les display_errors et j'ai :
                    Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /Users/moi/Sites/sdz/bdd/index.php on line 36
                    
                    Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number in /Users/moi/Sites/sdz/bdd/index.php on line 36
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 mai 2011 à 17:37:02

                      Citation : Taguan

                      T'as enlevé la virgule ??



                      Oui j'ai enlevé.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 mai 2011 à 17:48:24

                        Je peux voir ton code actuel ? L'erreur dit que tu n'as pas le même nombre de paramèter dans la requete et dans l'execute.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 mai 2011 à 18:10:51

                          Citation : Taguan

                          Je peux voir ton code actuel ? L'erreur dit que tu n'as pas le même nombre de paramèter dans la requete et dans l'execute.


                          ok:
                          <?php
                          $nomajout = 'jeux';
                          $possesseurajout = 'moi';
                          $consoleajout = 'iphone';
                          $prixajout = 5;
                          $nbre_joueurs_maxajout = 1;
                          $commentairesajout = 'Pas mal';
                          ?>
                          <?php
                          try
                          {
                          	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
                          	$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
                          }
                          catch(Exception $e)
                          {
                                  die('Erreur : '.$e->getMessage());
                          }
                          
                          $req_insert_var = $bdd->prepare('INSERT INTO jeux_video(nom,possesseur,console,prix,nbre_joueurs_max,commentaires) VALUES(:nom,possesseur,:console,:prix,:nbre_joueurs_max,:commentaires)') ;
                          $req_insert_var->execute(array(
                          'nom' => $nomajout,
                          'possesseur' => $possesseurajout,
                          'console' => $consoleajout,
                          'prix' => $prixajout,
                          'nbre_joueurs_max' => $nbre_joueurs_maxajout,
                          'commentaires' => $commentairesajout
                          ));
                          echo $nomajout.'ajouté depuis, variable dans la page index.php<br>';
                          
                          $req_insert_var->closeCursor(); 
                          ?>
                          
                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 mai 2011 à 18:13:27

                            Merciii !!! Mais j'hallucine !
                            • Partager sur Facebook
                            • Partager sur Twitter

                            variable avec requête préparée

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown