Bonjour,
je viens de démarrer en PHP/MySQL.
J'ai donc tenté de faire une requête préparée, en imitant celle trouvée dans le tuto que je suis , et j'obtient l'erreursans parvenir à obtenir le détail (alors que jusqu'à là, quand j'avais des bug sur les requêtes, j'arrivais à obtenir plus de détails).Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\malap\corps_description_materiel.php on line 22
Voici le bout de code posant problème (c'est le début d'un fichier, inclus dans un fichier ne contenant pour l'instant que les entêtes et compagnie):
A savoir que je veille à bien mettre le paramètre un id_mat valide. Si je remplace les lignes 19 et 20 par la ligne 21 (mise en commentaire), alors je n'ai pas de problèmes (j'obtiens le message "tout est en ordre").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
28 <?php //commun à la version normale et admin if (!isset($_GET['id_mat']) ) // l'url ne comprend pas le champ id_mat { ?> <p>Erreur : l'URL est invalide, il manque l'identifiant du matériel pour lequel il faut afficher le détail. <br/> <a href='liste.php'>Retourner à la liste du matériel</a> </p> <?php } else // tout vas bien { $ID_mat=(int) $_GET['id_mat']; //on force id_mat à être (ou devenir) un int try //on se connecte à la base de données : à modifier au moment de mettre sur le serveur { $bdd = new PDO('mysql:host=localhost;dbname=malap', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch (Exception $e) { ('Erreur : ' . $e->getMessage()); } $req = $bdd->prepare('SELECT * FROM mat WHERE id_mat=?')or die(print_r($bdd->errorInfo())); $reponseSQL_detail_mat = $req->execute(array($ID_mat)) or die(print_r($req->errorInfo())); //$reponseSQL_detail_mat = $bdd->query('SELECT * FROM mat WHERE id_mat=1') or die(print_r($bdd->errorInfo())); if ($infos=$reponseSQL_detail_mat->fetch()) { $reponseSQL_detail_mat->closeCursor(); ?> <p> tout est en ordre </p> <?php
Si quelqu'un pourrait m'indiquer où se trouve l'erreur (ou comment afficher le détail de l'erreur), je lui en serait très reconnaissant.
En vous remerciant par avance
Sandro
PS : j'espère avoir fait le bon choix en plaçant le sujet ici plutôt que de le mettre dans PDO et d'indiquer MySQL en tag
Partager