Php et mysql
Nkuiteul
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour / Bonsoir à tous.
Bien. J'ai besoin que quelqu'un puisse m'expliquer comment fonctionne la commande fetch() avec le fichier PDO. Voici un code que j'ai essayé d'écrire mais qui ne marche pas :
Lors de l'exécution le serveur m'envoi le message d'erreur sur la ligne de while. De ce genre
Fatal error: Call to à member function fetch() on a non-object in C:\wamp\www\essai\accueil.php on Line 13
Call Stack
Décanter moi sur cette situation s'il vous plait.
Bien. J'ai besoin que quelqu'un puisse m'expliquer comment fonctionne la commande fetch() avec le fichier PDO. Voici un code que j'ai essayé d'écrire mais qui ne marche pas :
<?php try { $bdd = new PDO ('mysql:host=localhost;db=test', ´root´, non); } catch (Exception $e) { Die ('Erreur' .$e->getMessage()); } $reponse = $bdd->query('SELECT * FROM test2'); while ($donnees = $reponse->fetch()) { ?>
Lors de l'exécution le serveur m'envoi le message d'erreur sur la ligne de while. De ce genre
Fatal error: Call to à member function fetch() on a non-object in C:\wamp\www\essai\accueil.php on Line 13
Call Stack
Décanter moi sur cette situation s'il vous plait.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Php et mysql
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Php alert - Forum PHP
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
2 réponses
Bonjour,
Avec QUERY .. pas de FETCH. (cela te retourne directement un array)
donc à la place d'un WHILE .. tu peux faire un FOREACH
Après.. perso... je préfère utiliser les requêtes préparées.
Comme ceci :
Avec QUERY .. pas de FETCH. (cela te retourne directement un array)
donc à la place d'un WHILE .. tu peux faire un FOREACH
Après.. perso... je préfère utiliser les requêtes préparées.
Comme ceci :
$sql = "SELECT * FROM test2"; $prepare = $bdd->prepare($sql); $prepare->execute(); // après tu peux faire while ($donnees = $prepare ->fetch()) { } //Ou encore : $arr_result = $prepare->fetchAll(); foreach( $arr_result as $donnees ) { }
Bonsoir
Contrairement à ce qu'a écrit Jordane (que je salue au passage), query ne retourne pas un array, mais bien un PDOStatement sur lequel on peut faire un fetch. Ton problème n'est pas à ce niveau là.
Ton erreur signifie qu' il y a un problème au niveau du query. Vu la simplicité de la requête, je ne vois guère d'erreur possible, à part que ta table test2 n'existe peut-être pas.
Mets ton instruction
[edit] Une autre cause d'erreur possible est que tu modifies $reponse à l'intérieur du while.
Contrairement à ce qu'a écrit Jordane (que je salue au passage), query ne retourne pas un array, mais bien un PDOStatement sur lequel on peut faire un fetch. Ton problème n'est pas à ce niveau là.
Ton erreur signifie qu' il y a un problème au niveau du query. Vu la simplicité de la requête, je ne vois guère d'erreur possible, à part que ta table test2 n'existe peut-être pas.
Mets ton instruction
$reponse = $bdd->query('SELECT * FROM test2');à l'intérieur du bloc try, s'il y a une erreur le catch te l'affichera.
[edit] Une autre cause d'erreur possible est que tu modifies $reponse à l'intérieur du while.