Call to a member function execute() on boolean - PHP - Programmation
Marsh Posté le 16-01-2018 à 12:27:12
il te manque l'appel à la fonction $req->bind_param() avant l'appel de ton $req->execute
Marsh Posté le 16-01-2018 à 12:52:28
Harkonnen a écrit : il te manque l'appel à la fonction $req->bind_param() avant l'appel de ton $req->execute |
Quand j'utilise $req->bind_param(), je vois ça :
Fatal error: Call to undefined method PDOStatement::bind_param() in C:\wamp\www\On line\agency\authentification\transfert4.php on line 46
Marsh Posté le 16-01-2018 à 12:54:46
bind_param() prend des paramètres hein, si tu ne lui donnes pas les paramètres à binder, faut pas t'étonner que ça ne marche pas !
http://php.net/manual/fr/pdostatement.bindparam.php
Marsh Posté le 16-01-2018 à 13:08:12
On peut utiliser la fonction à la suite : while ($donnees = $req->fetch()) ??
Marsh Posté le 16-01-2018 à 13:29:29
Je comprends pas ce que tu veux dire.
Tu utilises des prepared statements, c'est très bien car ça évite l'injection SQL. Seulement, il faut bien dire à mysql de quel type sont les paramètres de tes requêtes. C'est le rôle de bind_param().
Ainsi, dans ton code, en admettant que 'username' soit un type string, tu dois executer bind_param() de la manière suivante :
Code :
|
Marsh Posté le 16-01-2018 à 14:15:00
Voilà tout le code, au fait j'aimerais que dès que la page s'affiche que les variables nom prénom adresse ville région, soient affiché en même temps :
Code :
|
Marsh Posté le 16-01-2018 à 14:34:45
tu as utilisé le code que je t'ai fourni au dessus de ton post ?
edit: et donc, d'après ton code, tu créées une page HTML pour chaque user, bravo
Marsh Posté le 16-01-2018 à 14:52:25
Oui exactement, veuillez bien m'aider. Dès que je mets le code :
Fatal error: Call to undefined method PDOStatement::bind_param() in C:\wamp\www\On line\agency\authentification\transfert4.php on line 42
Marsh Posté le 16-01-2018 à 14:58:20
je réitère ma question : as tu lu mon post au dessus du tien ?
Marsh Posté le 16-01-2018 à 15:03:31
Harkonnen a écrit : je réitère ma question : as tu lu mon post au dessus du tien ? |
Oui je crée une page HTML pour chaque user
Marsh Posté le 16-01-2018 à 15:12:08
je parle de ce post : https://forum.hardware.fr/hfr/Progr [...] m#t2309988
Marsh Posté le 16-01-2018 à 15:19:58
Harkonnen a écrit : je parle de ce post : https://forum.hardware.fr/hfr/Progr [...] m#t2309988 |
Oui 'username' est de type string
Marsh Posté le 16-01-2018 à 15:22:44
... certes...
mais le code que je t'ai posté, l'as tu testé ?
Marsh Posté le 16-01-2018 à 15:31:21
Harkonnen a écrit : ... certes... |
Oui et toujours le meme problème : ( ! ) Fatal error: Call to undefined method PDOStatement::bind_param() in C:\wamp\www\On line\agency\authentification\transfert4.php on line 47
Marsh Posté le 16-01-2018 à 15:45:40
je comprends rien à ton truc ! tu utilises quelle API pour te connecter à MySQL ? mysqli ou PDO ?
tu te connectes avec un mysqli_connect(), et l'erreur te renvoie une méthode manquante sur un objet PDO.
en plus, ta variable $mysqli est déclarée dans un bloc if, et tu y fais référence après ce bloc, donc elle n'existe plus...
bref, ça sent la config foireuse, et le script recopié n'importe comment
Marsh Posté le 16-01-2018 à 15:57:11
Harkonnen a écrit : je comprends rien à ton truc ! tu utilises quelle API pour te connecter à MySQL ? mysqli ou PDO ? |
Alors comment je peux procéder? Quelles sont les étapes à suivre?
Marsh Posté le 16-01-2018 à 16:20:06
Un peu de lecture te fera le plus grand bien : https://openclassrooms.com/courses/ [...] -donnees-2
Marsh Posté le 15-06-2018 à 16:52:37
Ydalb a écrit : Un peu de lecture te fera le plus grand bien : https://openclassrooms.com/courses/ [...] -donnees-2 |
Sympa ce lien, la relecture ne me fera pas de tord non plus, top
Marsh Posté le 20-06-2018 à 22:55:55
@iamlouky
Tu as une erreur fatale parce que la génération de ton statement SQL a échoué. (l'appel à la méthode "prepare" )
Cette méthode de la class "mysqli" retourne FALSE lorsqu'une erreur survient au lieu de ton objet "mysqli_stmt" attendu.
http://php.net/manual/fr/mysqli.prepare.php
Juste après ton appel à "prepare", rajoute ceci et tu devrais être fixé:
Code :
|
@Harkonnen PDO et mysqli ont des méthodes communes, "prepare" en est une, mais ici, $mysqli reste un objet mysqli et non un objet PDO.
Marsh Posté le 20-06-2018 à 23:14:01
Non mais il n'y a pas à tourner autour du pot. Iamlouky mélange le style procédurale et le style objet. Et comme dit précédemment, il "instancie" (puisque pour le fait il n'instancie aucun objet) sa variable dans un bloque if et continue de l'utiliser en dehors, ce qui n'a aucun sens.
Marsh Posté le 20-06-2018 à 23:20:41
les mix de styles de programmation, ça c'est un autre problème !
Ce genre de chose ne me choque plus.
J'ai juste donné la cause de l'erreur, même si je suis d'accord il y avait d'autres choses à redire pour un code "meilleur".
(session start explicite, espace avant le doctype HTML, pas de contrôle d'erreur sur les variables...)
C'est en faisant des conneries qu'on apprend.
Marsh Posté le 16-01-2018 à 04:32:27
Bonjour,
Je suis entrain de mettre unen ligne, et il y a ce problème qui se pose :
Fatal error: Uncaught Error: Call to a member function execute() on boolean in /storage/ssd3/068/4295068/public_html/authentification/transfert4.php:46 Stack trace: #0 {main} thrown in /storage/ssd3/068/4295068/public_html/authentification/transfert4.php on line 46
Voici mon code :