Doit on réutilisé la connexion à la base de données lors d'un changement de page PHP.
1 month ago par KylianB

  • 2

    Bonzour, Doit on réutilisé la connexion pdo à la base de données lors d'un changement de page php. Je m'explique je me suis déjà connecté dessus auparavant via mon index.php et j'ai ajouté dans mon index.php un <a href> qui renvoie sur une seconde page php. Mais du coup j'ai une erreur me disant qu'une variable n'est pas défini sur celui-ci. Donc je me demande si je dois me reconnecté à la base de donnée sur ma seconde page PHP.

    Voici mon code du client.php :

    <?php
    
    $reponse = $_SESSION['bdd']->query('SELECT * FROM clients WHERE lastName lIKE "m%"');
    
    while ($donnees = $reponse->fetch())
    {
    ?>
        <p>
        <strong>Nom :</strong> <?php echo $donnees['lastName']. '<br /> Prénom :' . $donnees['firstName']; ?><br /> 
    <?php
    };
    $reponse->closeCursor();
    ?>

    Mon message d'erreur :

    Notice: Undefined index: bdd in /shared/httpd/mon-super-site/htdocs/client.php on line 3

    Fatal error: Uncaught Error: Call to a member function query() on null in /shared/httpd/mon-super-site/htdocs/client.php:3 Stack trace: #0 {main} thrown in /shared/httpd/mon-super-site/htdocs/client.php on line 3


    Réponses (1)


    alex
    Karma : 219
    2019-04-12 12:02:28
  • 2

    Hello !

    En effet, si tu veux executer du code qui contient des données provenant de ta base de données il faudra refaire ta connexion avec PDO.

    Mais tu peux, pour gagner en lisibilité, écrire le code de la connexion dans un fichier php qui lui est dédié, puis de l'inclure sur les pages où tu en aura besoin.

    connexion.php

    <?php
    try
    {
        $bdd = new PDO('mysql:host=127.0.0.1;dbname=colyseum','root','');
    }
    catch (Exception $e)
    {
        die('Erreur : ' . $e->getMessage());
    }

    index.php

    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <link rel="stylesheet" href="style.css">
        <title>Document</title>
    </head>
    <body>
    
        <a href="client.php">liste des clients</a>
    </body>
    </html>

    client.php

    <?php
    include 'conexion.php';
    
    $reponse = $bdd->query('SELECT * FROM clients');
    
    while ($donnees = $reponse->fetch())
    {
    ?>
        <p>
        <strong>Nom :</strong> <?php echo $donnees['lastName']. '<br /> Prénom :' . $donnees['firstName']; ?><br /> 
    <?php
    };
    $reponse->closeCursor();
    ?>
    

    //hey ho !