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 :

Insertion table inopérante [PDO]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Points : 36
    Points
    36
    Par défaut Insertion table inopérante
    Bonjour,

    J'aurais besoin de votre aide concernant mon script d'ajout à ma base de données

    J'utilise une connexion PDO présent dans un fichier s'appelant connect.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    $user = '.....';
    $pass = '......';
    $dsn = 'pgsql:host=127.0.0.1;dbname=BaseTest';
     
    try {
        $dbh = new PDO($dsn, $user, $pass); // connexion à base Postgre
    } catch (PDOException $e) {
        print "Erreur ! : " . $e->getMessage();
        die();
    }
    ?>
    Lui je suis sur qu'il marche !

    Mon soucis c'est avec mon script d'insertion :
    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
    <?php
    require 'connect.php';
      //récupération des valeurs des champs:
      $ajoutID     = $_POST["id"] ;  
      $ajoutPass = $_POST["password"] ;  
      $nom = $_POST["nom"] ;  
      $prenom = $_POST["prenom"] ; 
     
      //création de la requête SQL:
      $ajoutSQL = "INSERT  INTO  (id, password, nom, prenom)
                VALUES ( '$ajoutID', '$ajoutPass', '$nom', '$prenom') " ;
     
      //exécution de la requête SQL:
      $requete = $dbh->query($ajoutSQL)  ;
     
      //affichage des résultats, pour savoir si l'insertion a marchée:
      if($requete)
      {
        echo("L'insertion a été correctement effectuée") ;
        header("location:ajoutUti.php");
      }
      else
      {
        echo("L'insertion à échouée") ;
      }
    ?>
    Je ne suis pas un pro de tout ça et je ne vois pas où se trouve mon erreur..
    Les champs que je veux insérer proviennent d'un formulaire sur la page ajoutUti.php

    Voilà, si vous pouviez me débloquez ça fait un petit moment que je bute dessus

    Merci d'avance

    Anthony

  2. #2
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je pense que c'est ta requête qui ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $ajoutSQL = "INSERT  INTO  (id, password, nom, prenom)
                VALUES ( '$ajoutID', '$ajoutPass', '$nom', '$prenom') " ;
    Mais plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $ajoutSQL = "INSERT  INTO  (id, password, nom, prenom)
                VALUES ( '".$ajoutID."', '".$ajoutPass."', '".$nom."', '".$prenom."') " ;
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    @Kreepz, les deux notations sont équivalentes...

    @ClapTrap, tu es sûr que tous tes champs sont de type VARCHAR ? Même le champ id ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bovino Voir le message
    @Kreepz, les deux notations sont équivalentes...
    Autant pour moi je pensais que sa jouait quelque chose...

    Ah je viens de voir, tu fais dans qu'elle table ton Insert?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Bovino Voir le message
    @Kreepz, les deux notations sont équivalentes...

    @ClapTrap, tu es sûr que tous tes champs sont de type VARCHAR ? Même le champ id ?
    Affirmatif monsieur, screen à l'appuis :

    Nom : Sans titre1.png
Affichages : 85
Taille : 24,3 Ko

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    screen à l'appuis
    Effectivement, screen qui indique d'ailleurs que id est un entier...

    Ceci dit, si ta base est bien conçue, id devrait être en auto-incrément et tu ne devrais pas avoir à t'en soucier.

    Enfin, prends aussi en compte le dernier message de kreepz et renseignes-toi sur la syntaxe correcte d'un INSERT INTO en SQL.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Ceci dit, si ta base est bien conçue, id devrait être en auto-incrément et tu ne devrais pas avoir à t'en soucier.
    Son auto incrément ce n'est pas le: nextval('vv....) ?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Points : 36
    Points
    36
    Par défaut
    Bon après modification de ma base :

    Nom : Sans titre1.png
Affichages : 75
Taille : 27,9 Ko

    (Rajout d'un champ statut)

    @Bovino J'ai séléctionner le SERIAL en type sur Postgre, correspondant à l'autoincrémentt, enfin c'est ce que j'ai trouvé dans la doc

    @Kreepz Oui effectivement ma syntaxe INSERT INTO était fausse. En bon débutant, sachant que je n'avais qu'une table je pensais qu'il me la sélectionnait d'office..

    Modification du 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
    <?php
        require 'connect.php';
        //récupération des valeurs des champs:
        $ajoutPseudo = $_POST["pseudo"];
        $ajoutPass = $_POST["password"];
        $nom = $_POST["nom"];
        $prenom = $_POST["prenom"];
        $statut = $_POST["statut"];
     
        //création de la requête SQL:
        $ajoutSQL = "INSERT  INTO vv_utilisateur VALUES  (pseudo, password, nom, prenom, statut)
                VALUES ( '$ajoutPseudo', '$ajoutPass', '$nom', '$prenom', '$statut) ";
     
        //exécution de la requête SQL:
        $requete = $dbh->query($ajoutSQL);
     
        //affichage des résultats, pour savoir si l'insertion a marchée:
        if ($requete) {        
            header("location:ajoutUti.php");
        } else {
            echo("L'insertion à échouée");
     
        }
        ?>
    La requête ne marche toujours pas a vrai dire

  9. #9
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Est-ce-que tu vérifie si tes variables contiennent quelque chose?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    La syntaxe de l'INSERT n'est toujours pas correcte !

    Insérer à l'aide d'INSERT.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Points : 36
    Points
    36
    Par défaut
    Un VALUES en trop effectivement..

    Donc si j'ai bien compris la syntaxe, comme ceci c'est correcte ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ajoutSQL = "INSERT  INTO vv_utilisateur  (pseudo, password, nom, prenom, statut)
                VALUES ( '$ajoutPseudo', '$ajoutPass', '$nom', '$prenom', '$statut) ";
    Si oui ça ne marche toujours pas.

  12. #12
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Tu as un message d'erreur?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Points : 36
    Points
    36
    Par défaut
    Aucun, juste ma page qui me renvoie "L'insertion à échoué".

  14. #14
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Ah oui, tu execute ta requête mais ce que tu récupère est inexploitable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = $dbh->query($ajoutSQL);
    Il faut que tu utilise fetch:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $requete = $dbh->query($ajoutSQL);
     
    $donnees = $requete->fetch();
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  15. #15
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ajoutSQL = "INSERT  INTO vv_utilisateur  (pseudo, password, nom, prenom, statut)
                VALUES ( '$ajoutPseudo', '$ajoutPass', '$nom', '$prenom', '$statut) ";
    Il manque rien derrière $statut ?

    Aucun, juste ma page qui me renvoie "L'insertion à échoué".
    Oui, mais en affichant les messages d'erreur, tu obtiens quoi ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Points : 36
    Points
    36
    Par défaut
    Fetch sert normalement a récupérer les résultat d'une requête non ? Hors là ma requête ne retourne rien, elle insert seulement.

  17. #17
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Ah oui pardon

    Sinon regarde le message de Bovino :

    Il manque rien derrière $statut ?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Points : 36
    Points
    36
    Par défaut
    Bon bon bon..Deux fois en deux jours ça commence à faire beaucoup. Merci Bovino, c'était cette toute petite backquote que faisait échoué le tout.

    Kreepz m'a résolu un autre soucis hier pour exactement la même chose.

    Travaillé l'attention ClapTrap, travaillé l'attention ...

    Merci a vous !

  19. #19
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par ClapTrap
    Travaillé l'attention ClapTrap, travaillé l'attention
    Manifestement, ce n'est pas encore fait, je dirais donc plutôt "Travailler l'attention" !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Points : 36
    Points
    36
    Par défaut
    Beaucoup de points à travailler en fait !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Insert table et variables
    Par squaw dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 17/01/2007, 13h55
  2. [MySQL] Insertion table : champ = 'Resource id #' ?
    Par Angelik dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 14/12/2006, 19h43
  3. probleme insertion table
    Par donny dans le forum Oracle
    Réponses: 4
    Dernier message: 23/08/2006, 16h44
  4. Réponses: 2
    Dernier message: 23/02/2006, 12h23
  5. HELP creation et insertion table....??
    Par aqwel18 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/12/2004, 15h50

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