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 20/02/2011, 10h27   #1
Nouveau Membre du Club
 
Homme
Inscription : février 2007
Messages : 94
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : février 2007
Messages : 94
Points : 32
Points : 32
Par défaut acceder à la base de données

Bonjour à tous,
Je pense avoir activé mon pdo, du coup pour tester j'ai exécuté ce bout de code
Code :
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
<?php
$PARAM_hote = 'localhost';//le chemin vers le serveur
$PARAM_port = '3306';
$PARAM_nom_bd = 'phpTest';//le nom de la base de données
$PARAM_utilisateur = 'root';//nom d'utilisateur pour se connecter
$PARAM_mot_passe = '';//mot de passe de l'utilisateur pour se connecter
try
{
        $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
	echo 'ça marche :)';
}
 
catch(Exception $e)
{
        echo 'Erreur : '.$e->getMessage().'<br />';
        echo 'N° : '.$e->getCode();
	die();
}
$resultats=$connexion->query("SELECT membre FROM test ORDER BY membre ASC;"); // on va chercher tous les membres de la table qu'on trie par ordre croissant
print_r($connexion->errorInfo());
$resultats->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
while( $ligne = $resultats->fetch() ) // on récupère la liste des membres
{
        echo 'Utilisateur : '.$ligne->membre.'<br />'; // on affiche les membres
}
$resultats->closeCursor(); // on ferme le curseur des résultats
?>
et voila le résultat

Citation:
Array ( [0] => 42S22 [1] => 1054 [2] => Unknown column 'membre' in 'field list' )
Fatal error: Call to a member function setFetchMode() on a non-object in /opt/lampp/htdocs/tests/test.php on line 21
En fait ce qui m'intrigue c'est cette ligne
Code :
echo 'Utilisateur : '.$ligne->membre.'<br />'; // on affiche les membres
Vu que j'ai récupéré ce code d'un tuto, alors je me suis dit que "membre" 'est peut etre un membre de la variable $ligne donc c'est prédéfini.
Merci d'avance pour votre aide .
bilou_2007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 12h33   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
La gestion des erreurs n'est pas très bien écrite dans ce code.

Ajoute :
Code :
1
2
$connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
$connexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
Enlève ça :
Code :
print_r($connexion->errorInfo());
Le message que tu nous remontes indique simplement qu'il n'y a pas de champ "membre" dans ta table "test".
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 13h43   #3
Nouveau Membre du Club
 
Homme
Inscription : février 2007
Messages : 94
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : février 2007
Messages : 94
Points : 32
Points : 32
Citation:
Envoyé par sabotage Voir le message
Code :
1
2
 
$connexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
Quelle fonction remplit cette ligne?
bilou_2007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 14h39   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
N'hésite pas a consulter la doc pour avoir tout le detail :
http://php.net/manual/en/pdo.setattribute.php

D'ailleurs c'est surement mieux comme ça :
Code :
$connexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web