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 :

Requete d'insertion incorrecte [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Requete d'insertion incorrecte
    j'ai un problème dans ma requete d'insertion (je m'aide de mes précédente requète et elle fonctionne tous mais pas celle la )
    voila le code
    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
     <?php
            try
    {
    $bdd = new PDO('mysql:host=localhost;dbname=essieux(tca)', 'root', '');
            //(ici il n’y a pas de mot de passe, j’ai donc mis une chaîne vide)
     
     
    }
    catch (Exception $e)
    {
    die("Erreur :  ". $e->getMessage());
    }
     
    $_SESSION['type1'] = $_POST['type'] ;
    $_SESSION['libelle1'] = $_POST['libelle'] ;
     
     
     
    $reponse = "INSERT INTO boites VALUES ('{$_SESSION['type1']} ',
        '{$_SESSION['libelle1']}')";
     
    $bdd->exec($reponse) or die ('Erreur SQL !'.'<br />'.mysql_error());
     
     
     echo"la boite".$_POST['type']."a bien été enregistré";
     
     echo'<a href="index1.php">retour à laccueil</center></a>';
     
    ?>
               <?php session_destroy(); ?>
    bien sur tout en haut j'ouvre ma session

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    - Pourquoi mettre des variables en session puisque tu la détruis à la fin de ton script ?
    - Il faut activer les erreurs PDO quand tu debug
    - On t'a déjà signalé que tu mélangeais PDO et mysql_ dans ton cas
    - Utilise des requêtes préparées quand tu injectes des éléments dans la requête, surtout s'ils viennent d'un formulaire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $bdd = new PDO('mysql:host=localhost;dbname=essieux(tca)', 'root', '');
    $bdd->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
     
    $sth = $bdd->prepare('INSERT INTO boites VALUES (:type, :libelle)');
    $sth->execute(array(':type'=>$_POST['type'], ':libelle'=>$_POST['libelle']));
     
    echo 'la boite '.htmlspecialchars($_POST['type']). ' a bien été enregistrée ';
    echo '<a href="index1.php">retour à l\'accueil</center></a>';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    merci pour ces precieuses informations mais maintenant la page php m'affiche ce message d'erreur :
    Warning: PDOStatement::execute() [function.PDOStatement-execute]: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 in C:\wamp\www\boite_ajout.php on line 24

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    En supposant que tes colonnes sont "type" et "libelle" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sth = $bdd->prepare('INSERT INTO boites (type, libelle) VALUES (:type, :libelle)');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    merci cela fonctionne maintenant mais il faut vraiment que j'arrete de melanger PDO et mysql
    je clos le sujet

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

Discussions similaires

  1. [C#] Requete SQL Insert
    Par diaboloche dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/02/2006, 11h01
  2. [INSERTION DATE] dans requete d'insertion et mysql
    Par vincedjs dans le forum Requêtes
    Réponses: 9
    Dernier message: 03/02/2006, 17h11
  3. [PB] requete d'insertion avec group by
    Par warraf dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/11/2005, 07h01
  4. Probleme de requete d insertion
    Par donny dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 08/07/2005, 17h59
  5. [excel > sql] effectuer requete d'insertion
    Par kiki93 dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/02/2005, 15h30

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