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 sur l'insertion des donnees dans la base de donnee mysql


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 6
    Par défaut erreur sur l'insertion des donnees dans la base de donnee mysql
    bonjour a tous! voici ma fonction :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    function create(){
     
            // insert query
            $query = "INSERT INTO " . $this->table_name . "
                SET matriculeVehicule=:matriculeV,  marque=:marqueV, modele=:modeleV, idCategorie=:idCategorieV, carburant=:carburantV, transmission=:transmissionV, puissance=:puissanceV,poidsVide=:poidVideV, nbrePlace=:nbrePlaceV, idDisponibilite=:disponibleV, creation=:creationV";
     
     
            $stmt = $this->conn->prepare($query);
     
            // posted values
            $this->matriculeV=htmlspecialchars(strip_tags($this->matriculeV));
            $this->marqueV=htmlspecialchars(strip_tags($this->marqueV));
            $this->modeleV=htmlspecialchars(strip_tags($this->modeleV));
            $this->idCategorieV=htmlspecialchars(strip_tags($this->idCategorieV));
            $this->carburantV=htmlspecialchars(strip_tags($this->carburantV));
            $this->transmissionV=htmlspecialchars(strip_tags($this->transmissionV));
            $this->puissanceV=htmlspecialchars(strip_tags($this->puissanceV));
            $this->poidVideV=htmlspecialchars(strip_tags($this->poidVideV));
            $this->nbrePlaceV=htmlspecialchars(strip_tags($this->nbrePlaceV));
            $this->disponibleV=htmlspecialchars(strip_tags($this->disponibleV));
            // to get time-stamp for 'created' field
            $this->creationV = date('Y-m-d H:i:s');
     
            // bind values 
            $stmt->bindParam(":matriculeV", $this->matriculeV);
            $stmt->bindParam(":marqueV", $this->marqueV);
            $stmt->bindParam(":modeleV", $this->modeleV);
            $stmt->bindParam(":idCategorieV", $this->idCategorieV);
            $stmt->bindParam(":carburantV", $this->carburantV);
            $stmt->bindParam(":transmissionV", $this->transmissionV);
            $stmt->bindParam(":puissanceV", $this->puissanceV);
            $stmt->bindParam(":poidVideV", $this->poidVideV);
            $stmt->bindParam(":nbrePlaceV", $this->nbrePlaceV);
            $stmt->bindParam(":disponibleV", $this->disponibleV);
            $stmt->bindParam(":idCategorieV", $this->idCategorieV);
     
     
            if($stmt->execute()){
                return true;
            }else{
                return false;
            }
     
        }
    en l'executant j'ai cette erreur:
    PHP Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens .
    besoin d'aide svp! merci d'avance

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Il y a 2 fois idcategorie et il manque creationV.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 6
    Par défaut erreur sur l'insertion des donnees dans la base de donnee mysql
    voici mon code corrige mais rien ne va en base de donnee:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    function create(){
     
            // insert query
            $query = "INSERT INTO " . $this->table_name . "
                SET matriculeVehicule=:matriculeV,  marque=:marqueV, modele=:modeleV, idCategorie=:idCategorieV, carburant=:carburantV, transmission=:transmissionV, puissance=:puissanceV,poidsVide=:poidVideV, nbrePlace=:nbrePlaceV, idDisponibilite=:disponibleV, creation=:creationV";
     
     
            $stmt = $this->conn->prepare($query);
     
            // posted values
            $this->matriculeV=htmlspecialchars(strip_tags($this->matriculeV));
            $this->marqueV=htmlspecialchars(strip_tags($this->marqueV));
            $this->modeleV=htmlspecialchars(strip_tags($this->modeleV));
            $this->idCategorieV=htmlspecialchars(strip_tags($this->idCategorieV));
            $this->carburantV=htmlspecialchars(strip_tags($this->carburantV));
            $this->transmissionV=htmlspecialchars(strip_tags($this->transmissionV));
            $this->puissanceV=htmlspecialchars(strip_tags($this->puissanceV));
            $this->poidVideV=htmlspecialchars(strip_tags($this->poidVideV));
            $this->nbrePlaceV=htmlspecialchars(strip_tags($this->nbrePlaceV));
            $this->disponibleV=htmlspecialchars(strip_tags($this->disponibleV));
            // to get time-stamp for 'created' field
            $this->creationV = date('Y-m-d H:i:s');
     
            // bind values 
            $stmt->bindParam(":matriculeV", $this->matriculeV);
            $stmt->bindParam(":marqueV", $this->marqueV);
            $stmt->bindParam(":modeleV", $this->modeleV);
            $stmt->bindParam(":idCategorieV", $this->idCategorieV);
            $stmt->bindParam(":carburantV", $this->carburantV);
            $stmt->bindParam(":transmissionV", $this->transmissionV);
            $stmt->bindParam(":puissanceV", $this->puissanceV);
            $stmt->bindParam(":poidVideV", $this->poidVideV);
            $stmt->bindParam(":nbrePlaceV", $this->nbrePlaceV);
            $stmt->bindParam(":disponibleV", $this->disponibleV);
            $stmt->bindParam(":creationV", $this->creationV);
     
     
            if($stmt->execute()){
                return true;
            }else{
                return false;
            }
     
        }

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    tu as mélangé les syntaxes SQL :

    1. SQL INSERT INTO
    2. SQL UPDATE

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 6
    Par défaut

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 6
    Par défaut
    Nom : Capture du 2018-11-24 17-10-21.png
Affichages : 120
Taille : 132,9 Ko
    c'est ma table vehicule

  7. #7
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Tu utilises INSERT INTO avec SET. Or SET sert pour UPDATE. Pour INSERT INTO il faut utiliser VALUES. Voir les liens donnés par jreaux62.

  8. #8
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 508
    Par défaut
    Bonsoir. Et pourtant ton message d'erreur est clair cedrik.
    - Vérifie le nombre de paramètres
    - Vérifié également l'orthographe et la casse des nom de tes variables.

    Cordialement.

  9. #9
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Salut,

    INSERT INTO avec MYSQL a une forme avec SET https://dev.mysql.com/doc/refman/8.0/en/insert.html mais mieux vaut partir sur la syntaxe standard.
    Pour le problème de non insertion, il faudrait activer les erreurs avec PDO et/ou PHP, on ne sait pas trop d'où proviennent les $this->matriculeV etc... s'il y a des NULL ceci peut expliquer cela.

    PS: Pas besoin de htmlspecialchars, même les strip_tags je ne comprends pas cet "abus" là. La méthode n'est pas très bien écrite

  10. #10
    Membre averti Avatar de tissebaos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2017
    Messages : 9
    Par défaut
    salut,
    utilise "bindValue" a la place de "bindParam" ça devrais marcher

Discussions similaires

  1. [MySQL] insertion des données dans une base de donnée mysql via un formulaire
    Par ketauguy dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 12/03/2018, 11h31
  2. Aide sur la methode d'insertion des données dans la base
    Par devalender dans le forum MkFramework
    Réponses: 17
    Dernier message: 17/09/2015, 11h53
  3. [MySQL] Problème d'insertion des accents dans une base de donnée MYSQL
    Par maroon1970 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/08/2011, 18h35
  4. insertion des images dans une base de donnees mysql
    Par matamin dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2011, 16h59
  5. erreur sur l'insertion des commentaires dans excel
    Par fulgaro dans le forum Excel
    Réponses: 1
    Dernier message: 19/02/2007, 08h09

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