Fatal error: Call to a member function query() on string [Fermé]

Signaler
Messages postés
4
Date d'inscription
jeudi 8 mai 2014
Statut
Membre
Dernière intervention
17 juillet 2016
-
Messages postés
4
Date d'inscription
jeudi 8 mai 2014
Statut
Membre
Dernière intervention
17 juillet 2016
-
Bonjour,

Je suis en train de coder un site qui est relié à une base de données. J'arrive à me connecter à la BDD, mais dès qu'il s'agit d'interagir avec, je n'y arrive pas. (j'ai regardé les autres sujets, mais je ne comprends toujours pas d'où vient l'erreur)

Voici mon code qui doit me permettre de récupérer le contenu de la table "users" pour pouvoir authentifier un utilisateur ensuite.

$query = 'SELECT * FROM users';
$resultat= $bdd->query($query);

echo "nombre de ligne récupérée :".$resultat->num_rows;

while( ($ligne = $resultat->fetch(PDO::FETCH_OBJ)) !== NULL){
var_dump($ligne);
}

je reçois à ce moment là l'erreur : Fatal error: Call to a member function query() on string.

Merci pour votre aide !

3 réponses

Messages postés
4
Date d'inscription
jeudi 8 mai 2014
Statut
Membre
Dernière intervention
17 juillet 2016
2
C'est bien sur cette ligne se trouve l'erreur.

Voici le code qui me connecte à la base de données :

$serveur = 'localhost';
$bdd = 'projet';
$user = 'root';
$pass = '';

try{
$connexion = new PDO('mysql:host='.$serveur.';dbname='.$bdd, $user, $pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
//echo "Connexion OK !";
}

catch (PDOException $e) {

echo "Erreur de connexion à la base de données " . $e->getMessage() ;

die();
}


Merci de ta réponse !
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 66686 internautes nous ont dit merci ce mois-ci


$bdd est bien une chaîne :
$bdd = 'projet';
.
Là variable à utiliser poiur la connexion est celle obtenue par le new PDO, c'est à dire $connexion.

Pour le query, tu aurais dû écrire
$resultat= $connexion->query($query);
.
Pour les futures erreurs, essaye de comprendre toi-même les messages d'erreur, et si tu n'y arrives pas, recopie les messages COMPLETS.
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 66686 internautes nous ont dit merci ce mois-ci

Messages postés
4
Date d'inscription
jeudi 8 mai 2014
Statut
Membre
Dernière intervention
17 juillet 2016
2
J'ai essayé de comprendre par moi-même, mais je n'ai jamais compris comment fonctionne le lien avec la base de données malgré les nombreuses heures passées dessus.

Merci encore pour ton aide si matinale !

Bonjour

Le message signifie que tu appelles la fonction query sur une chaîne de caractères.
Comme tu l'appelles par $bdd->query($query), cela signifie (si l'erreur est bien à cette ligne) que $bdd est une chaîne, et non pas une connexion à mysql.
Peux-tu nous montrer le code où est définie la variable $bdd ? (en cachant tes identifiants bien sûr)

Et fais attention, il te reste d'autres erreurs, on verra plus tard.