Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/08/2011, 10h39   #1
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
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 :
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 :
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 :
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 ...
humitake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 15h13   #2
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
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 ...
humitake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 17h22   #3
Membre chevronné
 
Avatar de hornetbzz
 
Homme
Directeur commercial
Inscription : octobre 2009
Messages : 474
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : Directeur commercial

Informations forums :
Inscription : octobre 2009
Messages : 474
Points : 681
Points : 681
Envoyer un message via Skype™ à hornetbzz
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
hornetbzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 09h41   #4
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
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.
humitake est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h20.


 
 
 
 
Partenaires

Hébergement Web