Je n'arrive pas a un faire un INSERT INTO

Résolu/Fermé
Youn_3451 Messages postés 39 Date d'inscription lundi 19 octobre 2020 Statut Membre Dernière intervention 6 avril 2021 - 23 oct. 2020 à 14:42
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 24 oct. 2020 à 14:50
Bonjour, ca fait 1 semaine je suis bloque parce que je n'arrive pas a faire un insert dans ma bdd, j'ai essaye tout les solutions , mais aucun résultat je suis a bout.
Aider moi svp ...

Voici l'erreur que ca m'affiche :

( ! ) Fatal error: Uncaught PDOException: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 in C:\wamp64\www\html\ltr\vertical-menu-template-semi-dark\php\insert.php on line 65

( ! ) PDOException: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 in C:\wamp64\www\html\ltr\vertical-menu-template-semi-dark\php\insert.php on line 65
Call Stack
# Time Memory Function Location
1 0.0035 418160 {main}( ) ...\insert.php:0
2 0.0056 472496 execute ( ) ...\insert.php:65

et voici mon code php :

<?php
    
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);


    try{
        $bdd =new PDO('mysql:host=localhost;
        dbname=u243663731_; charset=utf8', 'root', '');
            // Activation des erreurs PDO
         $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
        $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
}   catch(PDOException $e) {
         die('Erreur : ' . $e->getMessage());
}
    if(isset($_GET['dte'])){    
        
            $numerosdevis = htmlspecialchars($_GET['numerosdevis']);
            $dte = htmlspecialchars($_GET['dte']);
            $dateecheance = htmlspecialchars($_GET['dateecheance']);
            $nomproduit = htmlspecialchars($_GET['nomproduit']);
            $devispour = htmlspecialchars($_GET['devispour']);
            $adresse = htmlspecialchars($_GET['adresse']);
            $email = htmlspecialchars($_GET['email']);
            $tel = htmlspecialchars($_GET['tel']);
            $departement = htmlspecialchars($_GET['departement']);
            $article = htmlspecialchars($_GET['article']);
            $referencearticle = htmlspecialchars($_GET['referencearticle']);
            $cout = htmlspecialchars($_GET['cout']);
            $quantite = htmlspecialchars($_GET['quantite']);
            $remise = htmlspecialchars($_GET['remise']);
            $tax1 = htmlspecialchars($_GET['tax1']);
            $tax2 = htmlspecialchars($_GET['tax2']);
            $modalite = htmlspecialchars($_GET['modalite']);
            $monnaie = htmlspecialchars($_GET['monnaie']);
            $note = htmlspecialchars($_GET['note']);
            $statut = htmlspecialchars($_GET['statut']);
            $etiquette = htmlspecialchars($_GET['etiquette']);


            $statement = $bdd->prepare("INSERT INTO devis (numerosdevis, dte, dateecheance, nomproduit, devispour, adresse, email, tel, departement, article, referencearticle, cout, quantite, remise, tax1, tax2, modalite, monnaie, note, statut, etiquette) VALUES (':numerosdevis, :dte, :dateecheance, :nomproduit, :devispour, :adresse, :email, :tel, :departement, :article, :referencearticle, :cout, :quantite, :remise, :tax1, :tax2, :modalite, :monnaie, :note, :statut :etiquette')");
            $statement->execute([
                "numerosdevis" => "$numerosdevis",
                "dte" => $dte,
                "dateecheance" => "$dateecheance",
                "nomproduit" => "$nomproduit",
                "devispour" => "$devispour",
                "adresse" => "$adresse",
                "email" => "$email",
                "tel" => "$tel",
                "departement" => "$departement",
                "article" => "$article",
                "referencearticle" => "$referencearticle",
                "cout" => "$cout",
                "quantite" => "$quantite",
                "remise" => "$remise",
                "tax1" => "$tax1",
                "tax2" => "$tax2",
                "modalite" => "$modalite",
                "monnaie" => "$monnaie",
                "note" => "$note",
                "statut" => "$statut",
                "etiquette" => "$etiquette"
    ]);

    echo"ok";
            }
    
?>


Voici aussi les données de la barre de navigation :

insert.php?numerosdevis=002&dte=10%2F11%2F2020&dateecheance=10%2F22%2F2020&nomproduit=Decoration&devispour=Deco.com&adresse=blablabla&departement=93000&email=Monentreprise%40gmail.com&tel=06.06.07.07.00&article=OBJT1&cout=1&quantite=1&referencearticle=E132134F&remise=50&tax1=18%25&tax2=18%25&modalite=CB&monnaie=€¬e=Petit+cadeau&statut=NON+PAYE&etiquette=Décoration&insert=Sauvegarder

et pour finir la table de ma bdd :





S'il vous plais aider moi je suis meme pret a payer ...
A voir également:

4 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
23 oct. 2020 à 14:56
Déjà... htmlspecialchar ne s'uitilise QUE pour l'affichage ... pas pour faire de l'insertion en BDD

Ensuite, si tu regardes ta requête,
INSERT INTO devis (numerosdevis, dte, dateecheance, nomproduit, devispour, adresse, email, tel, departement, article, referencearticle, cout, quantite, remise, tax1, tax2, modalite, monnaie, note, statut, etiquette) VALUES (':numerosdevis, :dte, :dateecheance, :nomproduit, :devispour, :adresse, :email, :tel, :departement, :article, :referencearticle, :cout, :quantite, :remise, :tax1, :tax2, :modalite, :monnaie, :note, :statut :etiquette')

tu as des quotes en trop ... et tu as oublié une virgule devant la dernière variable


Au passage, n'éhsites pas à mettre des retours à la lignes .. ça rend la requête plus lisible
par exemple ( toujours avec les erreurs que je ne t'ai pas corrigé )
INSERT INTO devis (
            numerosdevis
          , dte
          , dateecheance
          , nomproduit
          , devispour
          , adresse
          , email
          , tel
          , departement
          , article
          , referencearticle
          , cout
          , quantite
          , remise
          , tax1
          , tax2
          , modalite
          , monnaie
          , note
          , statut
          , etiquette
) VALUES (
          ':numerosdevis
          , :dte
          , :dateecheance
          , :nomproduit
          , :devispour
          , :adresse
          , :email
          , :tel
          , :departement
          , :article
          , :referencearticle
          , :cout
          , :quantite
          , :remise
          , :tax1
          , :tax2
          , :modalite
          , :monnaie
          , :note
          , :statut :etiquette'
)


0
Youn_3451 Messages postés 39 Date d'inscription lundi 19 octobre 2020 Statut Membre Dernière intervention 6 avril 2021
23 oct. 2020 à 19:51
que voulez vous dire par trop de quotes et j'ai remarque pour la vigule , mais ca n'a toujours pas changer l'erreur.

( ! ) Fatal error: Uncaught PDOException: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 in C:\wamp64\www\html\coqpix\php\insert.php on line 108
( ! ) PDOException: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 in C:\wamp64\www\html\coqpix\php\insert.php on line 108
Call Stack
# Time Memory Function Location
1 0.0313 417616 {main}( ) ...\insert.php:0
2 0.0337 469680 execute ( ) ...\insert.php:108

mon code avec les modifications :

<?php
    
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);


    try{
        $bdd =new PDO('mysql:host=localhost;
        dbname=u243663731_; charset=utf8', 'root', '');
            // Activation des erreurs PDO
         $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
        $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
}   catch(PDOException $e) {
         die('Erreur : ' . $e->getMessage());
}
    if(isset($_GET['dte'])){    
        
            $numerosdevis = ($_GET['numerosdevis']);
            $dte = ($_GET['dte']);
            $dateecheance = ($_GET['dateecheance']);
            $nomproduit = ($_GET['nomproduit']);
            $devispour = ($_GET['devispour']);
            $adresse = ($_GET['adresse']);
            $email = ($_GET['email']);
            $tel = ($_GET['tel']);
            $departement = ($_GET['departement']);
            $article = ($_GET['article']);
            $referencearticle = ($_GET['referencearticle']);
            $cout = ($_GET['cout']);
            $quantite = ($_GET['quantite']);
            $remise = ($_GET['remise']);
            $tax1 = ($_GET['tax1']);
            $tax2 = ($_GET['tax2']);
            $modalite = ($_GET['modalite']);
            $monnaie = ($_GET['monnaie']);
            $note = ($_GET['note']);
            $statut = ($_GET['statut']);
            $etiquette = ($_GET['etiquette']);


            $statement = $bdd->prepare("INSERT INTO devis (numerosdevis,
            dte,
            dateecheance,
            nomproduit,
            devispour,
            adresse,
            email,
            tel,
            departement,
            article,
            referencearticle,
            cout,
            quantite,
            remise,
            tax1,
            tax2,
            modalite,
            monnaie,
            note,
            statut,
            etiquette) VALUES ('
            :numerosdevis,
            :dte,
            :dateecheance,
            :nomproduit,
            :devispour,
            :adresse,
            :email,
            :tel,
            :departement,
            :article,
            :referencearticle,
            :cout,
            :quantite,
            :remise,
            :tax1,
            :tax2,
            :modalite,
            :monnaie,
             :note,
            :statut,
            :etiquette')");

            $statement->execute([

            "numerosdevis" => "$numerosdevis",
            "dte" => $dte,
            "dateecheance" => "$dateecheance",
            "nomproduit" => "$nomproduit",
            "devispour" => "$devispour",
            "adresse" => "$adresse",
            "email" => "$email",
            "tel" => "$tel",
            "departement" => "$departement",
            "article" => "$article",
            "referencearticle" => "$referencearticle",
            "cout" => "$cout",
            "quantite" => "$quantite",
            "remise" => "$remise",
            "tax1" => "$tax1",
            "tax2" => "$tax2",
            "modalite" => "$modalite",
            "monnaie" => "$monnaie",
            "note" => "$note",
            "statut" => "$statut",
            "etiquette" => "$etiquette"
    ]);

    echo"ok";
            }
    
?>
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
23 oct. 2020 à 20:21
VALUES (
            :numerosdevis,
            :dte,
            :dateecheance,
            :nomproduit,
            :devispour,
            :adresse,
            :email,
            :tel,
            :departement,
            :article,
            :referencearticle,
            :cout,
            :quantite,
            :remise,
            :tax1,
            :tax2,
            :modalite,
            :monnaie,
             :note,
            :statut,
            :etiquette)");
0
Youn_3451 Messages postés 39 Date d'inscription lundi 19 octobre 2020 Statut Membre Dernière intervention 6 avril 2021
23 oct. 2020 à 21:52
Quel sont les changements ?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
23 oct. 2020 à 22:35
ben... j'ai retiré les quotes ( quotes = apostrophe )
0
Youn_3451 Messages postés 39 Date d'inscription lundi 19 octobre 2020 Statut Membre Dernière intervention 6 avril 2021
24 oct. 2020 à 14:24
A oui autant pour moi, mais ca n'a rien changer ^^ toujours la même erreur ...
0
yg_be Messages postés 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
24 oct. 2020 à 14:40
tu as vraiment
"numerosdevis" => "$numerosdevis"
?
peux-tu partager ton code adapté et le texte du message d'erreur?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 oct. 2020 à 14:50
Modifie également ton array de datas en ajoutant les ":" devant le nom des variables et retires les guillement autour des variables php

$statement->execute([
    ":numerosdevis" => $numerosdevis
    ":dte" => $dte,
    ":dateecheance" => $dateecheance
    ":nomproduit" => $nomproduit
    ":devispour" => $devispour
    ":adresse" => $adresse
    ":email" => $email
    ":tel" => $tel
    ":departement" => $departement
    ":article" => $article
    ":referencearticle" => $referencearticle
    ":cout" => $cout
    ":quantite" => $quantite
    ":remise" => $remise
    ":tax1" => $tax1
    ":tax2" => $tax2
    ":modalite" => $modalite
    ":monnaie" => $monnaie
    ":note" => $note
    ":statut" => $statut
    ":etiquette" => $etiquette
    
]);


et si ton souci persiste, montre nous le code modifié
0