Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur lors de la connexion à la base

    24 janvier 2023 à 11:18:18

    Bonjour, J'ai un problème depuis un certain temps : mon code de connexion pPDO à ma base de données (OVH, SQL) crée une erreur. Ce code fonctionnait pourtant bien jusqu'ici.

    Voici l'erreur renvoyée :

    Parse error: syntax error, unexpected '{' in /home/mneseeka/www/connexion_base/connexion_base_PDO.php on line 9


    Et voici mon code (j'ai remplacé ici les données de connexion par des XXX):

    <?php
    
    $host='XXX';
    
    
    
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    
    try
    
    {
    
    	$bdd = new PDO('mysql:host='.$host.';dbname=XXX', 'XXX', 'XXX');
    
    	
    
    }
    
    catch (Exception $e)
    
    {
    
        die('Erreur : ' . $e->getMessage());
    
    }
    
    ?>

    Je m'étais basé pour ce code sur les exemples donnés dans le tutoriel PHP d'Open Classroom. Merci d'avance pour votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      24 janvier 2023 à 14:43:48

      Salut ! Ton problème viens sûrement des guillemets ', pour qu'une variable php soit interprétée elle doit être placée entre double guillemets " et tu n'auras pas besoin des points . non plus.

      Je te conseil aussi de définir des variables pour dbname, username et password.

      -
      Edité par Enrycoo 24 janvier 2023 à 14:55:47

      • Partager sur Facebook
      • Partager sur Twitter
        24 janvier 2023 à 18:30:06

        JulienGuerraz a écrit:

        Bonjour, J'ai un problème depuis un certain temps : mon code de connexion pPDO à ma base de données (OVH, SQL) crée une erreur. Ce code fonctionnait pourtant bien jusqu'ici.

        Voici l'erreur renvoyée :

        Parse error: syntax error, unexpected '{' in /home/mneseeka/www/connexion_base/connexion_base_PDO.php on line 9


        Et voici mon code (j'ai remplacé ici les données de connexion par des XXX):

        <?php
        
        $host='XXX';
        
        
        
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        
        try
        
        {
        
        	$bdd = new PDO('mysql:host='.$host.';dbname=XXX', 'XXX', 'XXX');
        
        	
        
        }
        
        catch (Exception $e)
        
        {
        
            die('Erreur : ' . $e->getMessage());
        
        }
        
        ?>

        Je m'étais basé pour ce code sur les exemples donnés dans le tutoriel PHP d'Open Classroom. Merci d'avance pour votre aide.

        Je ne pense pas que dans les exemples, le code était espacé de 1, 2 voir 3 saut de lignes par lignes :)

        Il y a plusieurs soucis dans ce petit bout de code :

        • Utilisation d'un try/catch inutile
        • Saut de lignes qui rends le code moins claire et plus long pour rien
        • Fermeture de la balise php à la fin
        • Tableau pdo_options défini mais pas utilisé
        <?php
        
        $dbHost = 'localhost';
        $dbName = 'database';
        $dbUser = 'user';
        $dbPass = 'password';
         
        $db = new PDO('mysql:host=' . $dbHost . ';dbname=' . $dbName, $dbUser, $dbPass);
        


        On passe de 27 lignes à 9 et pourtant c'est plus clair :D

        • Partager sur Facebook
        • Partager sur Twitter
          25 janvier 2023 à 13:55:44

          Merci beaucoup, Quenti77 pour ta réponse.

          Le code que tu donnes renvoie une erreur sur mon serveur :

          Fatal error: Cannot instantiate non-existent class: pdo in /home/mneseek/www/connexion_base/connexion_base_PDO.php on line 13

          Et par ailleurs, lorsque ke teste l'activation de pdo avec ce code :

          $test = extension_loaded("php_pdo_mysql");
          
          if ($test == true) echo 'oui';
          else echo 'non';

          Le serveur renvoie non.

          Donc je pense que PDO a du être désactivé sur mon serveur. Reste à savoir comment le réactiver...



          • Partager sur Facebook
          • Partager sur Twitter
            25 janvier 2023 à 15:36:03

            JulienGuerraz a écrit:

            Merci beaucoup, Quenti77 pour ta réponse.

            Le code que tu donnes renvoie une erreur sur mon serveur :

            Fatal error: Cannot instantiate non-existent class: pdo in /home/mneseek/www/connexion_base/connexion_base_PDO.php on line 13

            Et par ailleurs, lorsque ke teste l'activation de pdo avec ce code :

            $test = extension_loaded("php_pdo_mysql");
            
            if ($test == true) echo 'oui';
            else echo 'non';

            Le serveur renvoie non.

            Donc je pense que PDO a du être désactivé sur mon serveur. Reste à savoir comment le réactiver...




            Vérifie ta version de PHP, si elle est inférieur à 5, tu ne peux pas utiliser PDO et je te conseil donc de passer sur la dernière version, si ce n'est pas ça le problème je ne sais pas comment t'aider, ce que tu peux aussi vérifier c'est de faire 
            <?php
               phpinfo() ;
            ?>
            et regarde si tu il te dit que PDO est installé sur le PHP


            -
            Edité par Enrycoo 25 janvier 2023 à 15:47:38

            • Partager sur Facebook
            • Partager sur Twitter
              27 janvier 2023 à 16:24:36

              Merci beaucoup Enrycoo et quenti77 pour votre aide, j'ai pu sésoudre le problème : il s'agissait effectivement de la version php : OVH a dû passer mon site en version 4.4 donc inférieure à 5, donc ne supportant pas PDO. J'ai pu passer en version 5.5 en utilisant la documentation d'OVH en ligne, donc tout va bien, mon site re-fonctionne.

              Merci encore, sujet résolu.

              -
              Edité par JulienGuerraz 27 janvier 2023 à 16:28:34

              • Partager sur Facebook
              • Partager sur Twitter
                27 janvier 2023 à 18:18:31

                Et avec cette même documentation, est-ce qu'il ne serait pas judicieux de passer en 8.1 (ou 8.2) pour être à jour ?
                • Partager sur Facebook
                • Partager sur Twitter

                Erreur lors de la connexion à la base

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown