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 :

N'insert pas dans la base ce que je saisi [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Points : 578
    Points
    578
    Par défaut N'insert pas dans la base ce que je saisi
    Bonjour,

    J'ai un soucis avec les insertions dans ma base de données, je suis capable d'inserer des données dans ma table Comptes et de les récupérer avec le select correspondant. Cependant lorsque je souhaite faire la même chose avec ma table Plans l'insertion s'effectue correctement mais le select ne me retourne rien.
    Dans les deux cas c'est le même insert que j'ai copier / coller en modifiant les champs et c'est également le même select.

    Code des deux tables :
    Code PHP : 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
     
        $mdb2->query("CREATE TABLE Plans(     idPlan                   INTEGER          AUTOINCREMENT		PRIMARY KEY,
                                              libPlan                  VARCHAR(40),
                                              urlPlan                  VARCHAR(100))");
            if(PEAR::isError($mdb2)){
            echo 'Erreur dans la création de la table Plans : \n';
            die($mdb2->getMessage());
        }
     
        $mdb2->query("CREATE TABLE Comptes(   loggin                   VARCHAR(20),
                                              password                 VARCHAR(20),
                                              arretSignauxSonores      BOOLEAN)");
        if(PEAR::isError($mdb2)){
            echo 'Erreur dans la création de la table Comptes : \n';
            die($mdb2->getMessage());
        }

    Voici le code php de l'insertion :
    Code PHP : 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
     
    <?php
    require_once 'MDB2.php';
     
    $mdb2 = MDB2::connect('sqlite:///maBase');
    if(PEAR::isError($mdb2)){
        echo "Erreur de connexion : \n";
        die($mdb2->getMessage());
    }
     
     
    $insert = $mdb2->query("INSERT INTO Plans(libPlan, urlPlan) VALUES('Plan1', 'URL1')");
    if(PEAR::isError($insert)){
    	echo "Erreur dans le select";
    	die($insert->getMessage());
    }
     
    $mdb2->disconnect();
     
    echo "Insertion : ok !";
    ?>

    Et le code du select :
    Code PHP : 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
     
    <?php
    require_once 'MDB2.php';
     
    $mdb2 = MDB2::connect('sqlite:///maBase');
    if(PEAR::isError($mdb2)){
        echo "Erreur de connexion : \n";
        die($mdb2->getMessage());
    }
     
    $res = "";
    $result = $mdb2->query("SELECT * FROM Plans");
    if(PEAR::isError($result))
    	die($result->getMessage());
     
    while($row = $result->fetchRow(MDB2_FETCHMODE_ASSOC)){
    	$res .= "\n?" . " " . $row['libPlan'] . " " . $row['urlPlan'];
    }
    echo "résultat : " . $res;
     
    $mdb2->disconnect();
    ?>

    Lorsque je remplace les champs par Comptes(loggin, password) cela insert bien ce que je tape et le select me les affiches. Lorsque c'est pour les Plans j'ai bien un "?" qui m'indique que quelque chose a été récupéré de la base de données mais la ligne ne contient que les deux espaces sensé séparer les données:
    Si quelqu'un peut l’éclairé sur mon erreur qui doit être toute bête ...

  2. #2
    Membre confirmé Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Points : 578
    Points
    578
    Par défaut
    J'ai télécharger l'outil SQLiteManager qui fait la même chose que PHPMyAdmin mais pour SQLite. J'ai recréer ma base de données depuis cette outils et j'ai inséré depuis l’outils des lignes dans les tables Comptes et Plans.
    Je peux parfaitement visualisé ce que j'ai inséré et je suis donc sûr que les informations sont présentes. Malheureusement encore une fois je suis capable récupérer les loggin et les password mais je ne peux toujours pas récupérer les libellés des plans ...

  3. #3
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut
    bonjour,

    tu devrais :
    - vérifier si c'est l'insertion ou la relecture qui ne fonctionne pas en allant voir avec ton interface graphique si l'insertion a fonctionné.

    - poster aussi l'insertion qui est censée ne pas fonctionner

  4. #4
    Membre confirmé Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Points : 578
    Points
    578
    Par défaut
    Bonjour,

    Citation Envoyé par hornetbzz
    vérifier si c'est l'insertion ou la relecture qui ne fonctionne pas en allant voir avec ton interface graphique si l'insertion a fonctionné.
    L'insertion fonctionne correctement, je suis capable d’aller voir ce que j'ai inséré sur l'interface graphique. Par contre sur mes pages toujours aucun moyen de récupérer autre chose que des lignes vides ...

    Citation Envoyé par hornetbzz
    poster aussi l'insertion qui est censée ne pas fonctionner
    Je n'ai pas d'insertion qui est censée ne pas fonctionner, j'ai en ai une sur la table Comptes qui fonctionne où je peux grâce aux select récupérer les données présentes. Mais celle de Plans qui est strictement la même, mis à part le nom de la table et des champs, où le select me retourne des lignes vides alors que lorsque j'explore la table avec SQLiteManager je trouve bien les informations que j'ai inséré ...

    [Edit : 09:58]
    J'ai supprimé le MDB2_FETCHMODE_ASSOC du select et donc remplacé par un $row[1] pour avoir le libellé du plan. Et il me les affichent maintenant correctement. C'est donc un problème autour du tableau associatif. Je vais regardé au niveaux des options de table.

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

Discussions similaires

  1. insertion des numéros qui n'existe pas dans la base de données
    Par cisco.nat dans le forum Général Java
    Réponses: 5
    Dernier message: 09/07/2013, 12h39
  2. Réponses: 10
    Dernier message: 14/02/2007, 12h03
  3. Récupérer tout ce qui n'est pas dans la base
    Par SnakeBoudoir dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/11/2006, 19h18
  4. [HTML] Probleme d'insertion HTML dans une base de données MySQL
    Par tarzanjane dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/09/2006, 12h12
  5. PB insert double dans la base
    Par zooffy dans le forum ASP
    Réponses: 7
    Dernier message: 25/09/2006, 11h36

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