Call to a member function fetch() on bool,

Résolu
joseph - 30 nov. 2024 à 16:06
prosperekot Messages postés 4 Date d'inscription samedi 30 novembre 2024 Statut Membre Dernière intervention 30 novembre 2024 - 30 nov. 2024 à 19:55

Bonjour,

ca fait plusieurs jour que je n'arrive pas à me retrouver sur quelle ligne de code où y a une faute, du cout je n'arrive pas résoudre cette erreur à chaque fois que j'utilise la fonction fetch(), il y a un message d'erreur qui s'affiche: "Call to a member function fetch() on bool":

voici mon code source

<?php
       
$con=new PDO("mysql:host=localhost;dbname=visco;charset=utf8",
     "root","",[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
       
         $sql= "SELECT * FROM employe";      
         $result=$con->prepare($sql);
         $resultat=$result->execute();

echo "<table border= ’4’ cellspacing = ’ 2 ’cellpadding = ’2 ’>"
   ." <captionalign = ’bottom’ > Table<i>Agents</i></caption >"
          . " <tr><th>IDagent</th>"
          . " <th>Nom</th><th>date engagement</th>"
          . " <th>Téléphone</th>"
          . " <th>Action</th></tr>\n ";
                 
    while ($employe=$resultat->fetch())
           
    {
        $nom=$employe['Nom'];
                                                    
     echo " <tr><td>$employe->['IDagent']</td>"
         ."<td> $employe->['Nom']</td>" 
         ."<td> $employe->['dateengage']</td>"
         ."<td>$employe->['Téléphone']</td>" 
         ."<td><a href= ’agentsimple.php' mode=".MODE_MAJ. "&amp;
          nom='$nom'>Modifier cet agent </a> </td> </tr>\n ";
    }
  echo " </table>";
           
?>

Merci,

Cordialement 

A voir également:

1 réponse

jordane45 Messages postés 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 4 737
30 nov. 2024 à 16:17

bonjour 

applique ceci :

https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

ca devrait t'indiquer où se trouve l'erreur 


1
jordane45 Messages postés 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 4 737
30 nov. 2024 à 16:19

et au passage, si tu testes ta requête SQL directement dans ta base via phpmyadmin par exemple qu'est-ce que tu obtiens ?

tu nous en fais une capture écran ?

0
prosperekot Messages postés 4 Date d'inscription samedi 30 novembre 2024 Statut Membre Dernière intervention 30 novembre 2024
30 nov. 2024 à 16:32

merci j'applique d'abord et je reviens vers vous

0
prosperekot Messages postés 4 Date d'inscription samedi 30 novembre 2024 Statut Membre Dernière intervention 30 novembre 2024 > jordane45 Messages postés 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025
30 nov. 2024 à 16:38

en testant directement la requête SQL dans la base via phpmyadmin, ca réussi

j'obtiens ceci:

0
prosperekot Messages postés 4 Date d'inscription samedi 30 novembre 2024 Statut Membre Dernière intervention 30 novembre 2024
30 nov. 2024 à 18:51

bonsoir jordane45

J'ai appliquer ce que vous m'avez dis, le message ne s'affiche plus,

sauf il y a un autre message qui dit:

Warning: Attempt to read property "IDagent" on array in C:\wamp64\www..

je ne sais  a quel niveau cette erreur continue de persister.

0
jordane45 Messages postés 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 4 737 > prosperekot Messages postés 4 Date d'inscription samedi 30 novembre 2024 Statut Membre Dernière intervention 30 novembre 2024
30 nov. 2024 à 19:04

Dans le message d'erreur, tu as le numéro de ligne concerné

A savoir.. celle la :

   echo " <tr><td>$employe->['IDagent']</td>"

Il faut que tu modifies le code que tu as pris dans mon lien pour définir que tu veux les résultats sous forme d'objet et non en array

  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
   $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

A remplacer donc, par :

  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
   $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ );
1