IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Erreur PDO execute()


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 126
    Par défaut Erreur PDO execute()
    Bonjour à tous,

    Incompréhensiblement je reçois une erreur si j'essaye d'utiliser la méthode PDO, pourtant le nombre de variables correspond bien au nombre de bindvalues, serait-ce une erreur de syntaxe ?

    Erreur :
    "Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in D:\Dev\Comments\comments.inc.php:23 Stack trace: #0 D:\Dev\Comments\comments.inc.php(23): PDOStatement->execute() #1 D:\Dev\Comments\index.php(45): setComments(Object(PDO)) #2 {main} thrown in D:\Dev\Comments\comments.inc.php on line 23"
    NB: en query simple tout fonctionne correctement ...

    Merci d'avance pour vos suggestions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function setComments($conn)
    {
        if (isset($_POST['commentSubmit'])) {
            $userId = $_POST['userId'];
            $createdOn = $_POST['createdOn'];
            $comment = $_POST['comment'];
     
            /*$sql = "INSERT INTO comments (userId, createdOn, comment)
            VALUES('$userId','$createdOn','$comment')";
            $result = $conn->query($sql);*/
     
     
     
            $sql = "INSERT INTO comments (userId, createdOn, comment)
            VALUES(':userId',':createdOn',':comment')";
     
            $stmt = $conn->prepare($sql);
            $stmt->bindValue(':userId', $userId, PDO::PARAM_STR);
            $stmt->bindValue(':createdOn', $createdOn, PDO::PARAM_STR);
            $stmt->bindValue(':comment', $comment, PDO::PARAM_STR);
            $stmt->execute();
        }
    }

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 126
    Par défaut
    ARRRRRGGGGGHHHH !

    J'ai trouvé : il ne fallait pas mettre les simples quotes dans VALUES ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur d'execution 3704, ...:objet n'est pas ouvert
    Par cari dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 29/11/2005, 15h44
  2. [ERREUR D'EXECUTION] Segmentation Fault
    Par CestPasMoi dans le forum C++
    Réponses: 3
    Dernier message: 26/11/2005, 17h38
  3. Réponses: 3
    Dernier message: 03/11/2005, 18h41
  4. [LDAP][Interface Winldap.h] Erreur d'execution
    Par -=Spoon=- dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 10/03/2005, 17h10
  5. [javamail] erreur d'execution
    Par bibx dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 05/12/2003, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo