Connexion a une base de donnée avec "fetch"

Petit nouveau ! | 5 Messages

09 déc. 2018, 22:48

Bonjour je dois finir de programmer un site internet mais je rencontre un problème au moment de la connexion entre la base de données et le code PHP.
Voici mon code :
            <?php
            try
            {
                $bdd = new PDO('mysql:host=localhost;dbname=bdd visiteurs;charset=utf8', 'root', '');
            }
            catch(Exception $e)
            {
                    die('Erreur : '.$e->getMessage());
            }

            $reponse = $bdd->query("SELECT Titres FROM partition");
            while ($donnees = $reponse->fetch())
            {
                echo $donnees ['Titres']?>;
            }

            $reponse->closeCursor();
            ?>
Il m'affiche un message d'erreur comme quoi la fonction "fecht" a un problème .
J'aurais besoin d'aide pour savoir ou est mon erreur

Mammouth du PHP | 2703 Messages

09 déc. 2018, 22:55

echo $donnees['Titres'];
au lieu de
echo $donnees ['Titres']?>;
aidera.

nous donner le message d'erreur exact nous aidera.

Petit nouveau ! | 5 Messages

09 déc. 2018, 23:00

le message d'erreur est :
Parse error: syntax error, unexpected end of file at line 43

Petit nouveau ! | 5 Messages

09 déc. 2018, 23:19

Il en a un deuxième que je comprend pas et c'est celui la qui parle de la fonction fetch :
Fatal error: Uncaught Error: Call to a member function fetch() on boolean

Mammouth du PHP | 2703 Messages

09 déc. 2018, 23:22

voir http://php.net/manual/fr/pdo.query.php pour la valeur de retour de la fonction query.

Petit nouveau ! | 5 Messages

10 déc. 2018, 22:36

J'ai beau lire et relire la doc que tu m'as envoyé je n'arrive pas a saisir mon erreur de code. Est-ce que quelqu'un pourrait mieux m'expliquer mon erreur ?

Petit nouveau ! | 5 Messages

11 déc. 2018, 00:06

J'ai tenté d'améliorer mon code de plusieurs manières j'en arrive toujours au même probleme : <br/>
Ce message d'erreur s'affiche :<br/>
"Fatal error: Uncaught Error: Call to a member function fetch() on boolean in C:\wamp64\www\Haru2\page_de_partitions.php on line 29"<br/>
suivi de celui ci :<br/>
"Error: Call to a member function fetch() on boolean in C:\wamp64\www\Haru2\page_de_partitions.php on line 29"<br/>
<br/>
J'ai lu la doc sur les fonctions query et fetch mais il me semble que je les ai bien utilisé, si quelqu'un pouvait me venir en aide ?<br/>
voici mon code actuel :
<PHP><s>
</s><!DOCTYPE html>
<html>
<head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="style.css" />
        <title>Haru entreprise</title>
    </head>

    <body>

        <?php include ("includes/en-tete.php"); ?>

        <?php include ("includes/menus.php"); ?>

            <div <section class="element3">
    	<a id="acceuil"><h3>Listes des partitions : </h3></a>
    	<p>Mettre le systeme de telecharement d'une partitions</n></p>
            <?php
            try
            {
                $bdd = new PDO('mysql:host=localhost;dbname=visiteurs;charset=utf8', 'root', '');
            }
            catch(Exception $e)
            {
                    die('Erreur : '.$e->getMessage());
            }
            $reponse = $bdd->query('SELECT * FROM partition');

            while($donnees = $reponse->fetch())
            {
            ?>
            <p>
                Ce morceau s'appelle <?php echo $donnees ['Titres']?></br>
                Il a été composé par <?php echo $donnees ['Auteurs']?></br>
                Il a été mis en ligne par <?php echo $donnees ['Uploaders']?></br>
                Sa note est de <?php echo $donnees ['Notes']?> sur 5</br>
                C'est un morceau de <?php echo $donnees ['Style']?>
                Il est composé de <?php echo $donnees ['Nb_d_instruments']?> plus precisémment de : <?php echo $donnees ['Instruments']?>
            </p>
            <?php
            }

            $reponse->closeCursor();
            ?>
            </section></div></div>
            
        <?php include ("includes/pied_de_page.php");?>

    </body>
</html><e>
</e></PHP></r>

Mammouth du PHP | 2703 Messages

11 déc. 2018, 00:29

Call to a member function fetch() on boolean
ça veux dire que $reponse vaux false
$reponse vaux false quand la requête sql ("SELECT * FROM partition") est invalide. une autre possibilité d'erreur est que la connexion à la base de donnée ne s'est pas bien faite donc la requête, bien que valide, n'a pas pu s’exécuter.