IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Class "PDO" not found suite à MaJ Mint


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 15
    Points
    15
    Par défaut Class "PDO" not found suite à MaJ Mint
    Bonjour à tous,
    Fatal error: Uncaught Error: Class "PDO" not found in /var/www/html/logjmh5/src/Models/Base.php:25
    Erreur apparue après une mise à jour de l'OS et passage de php 7.4 à php 8.1
    Apache2 version 2.4.52
    Php 8.1.2
    Zend Engine v4.1.2
    mysql 8.0.36
    OS actuel Linux Mint 21.3 (système à jour)

    Apparemment je pense que les modules (PDO entre autre) ne se chargent pas car pas de trace dans le phpinfo. J'ai suivi un nombre de routes google et autre sans trouver la solution à mon problème.
    A savoir également une tentative de réinstallation complète du LAMP avec purge mais rien y fait.
    Autre problème mon phpmyadmin m'affiche une page blanche, (j'adore les pages blanches). J'ai configuré le php.ini afin qu'il m'affiche les erreurs, mais je suis pas sûr du résultat.
    Bref j'ai l'impression de tourner en rond et de perdre mes neurones et avant d'entrevoir la réinstallation complète du système et du reste je me permet de faire appel à votre bonne volonté et votre courage.
    Je reste bien sûr à votre disposition et merci de votre aide.

    Au cas où ligne de code qui provoque l'erreur :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?php
    namespace App\Models;
    //use \PDO;
        /**
        * Définition de la classe Base qui crée les liens vers la base de données
        * La classe sera appelée à chaque fois qu'une donnée de la base de données sera nécessaire
        */
        class Bdd
        {
            //----------------------------------------
            //SINGLETON
            //----------------------------------------
            private static $connect = null;
            private $bdd;
     
            private function __construct()
            {
                $Host     = "localhost";
                $Login    = "log du phpmyadmin";
                $Password = "********";
                $Base     = "log";
     
                //Création d'un lien à la base de données de type PDO
                try{
                    $this->bdd = new \PDO('mysql:host='.$Host.';dbname='.$Base, $Login, $Password, array(\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); // Ligne qui renvoi l'erreur
                    $this->bdd->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
                }
                catch(Exception $e){
                    die('Erreur : ' . $e->getMessage());
                }
            }
     
            public static function getInstance() {
                if(is_null(self::$connect)) {
                    self::$connect = new Bdd(); 
                }
                return self::$connect;
            }

  2. #2
    Membre éclairé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 347
    Points : 708
    Points
    708
    Par défaut
    Bonjour,

    Est-ce que l'extension PDO spécifique à ta bdd est bien activée dans le fichier de configuration php.ini ?
    https://www.php.net/manual/fr/pdo.installation.php

    Pour une bdd Mysql, il faut décommenter la ligne extension=pdo_mysql :
    https://github.com/php/php-src/blob/...velopment#L954

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Bonjour Pytet et merci de la réponse

    Alors oui j'ai regardé du côté du php.ini, décommenté les lignes pdo.so, pdo_mysql, et pdo_sqlitedans extension, relancé apache2 mais rien n'y fait, manipulation faite sur le php.ini d'apache2, celui de php/8.1 et php/8.1/fpm, bref il y en à partout donc j'ai pu me tromper. Et j'ai remarqué que dans la littérature du Web on fait référence au php.ini mais on ne stipule pas lequel, d'où mon hésitation.

    Donc je suis un peu coincé

    php.ini du dossier /etc/php/8.1/apache2/

    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
    29
    30
    31
     
    ;   extension folders as well as the separate PECL DLL download (PHP 5+).
    ;   Be sure to appropriately set the extension_dir directive.
    ;
    extension=pdo.so
    ;extension=bz2
    ;extension=curl
    ;extension=ffi
    ;extension=ftp
    ;extension=fileinfo
    ;extension=gd
    ;extension=gettext
    ;extension=gmp
    ;extension=intl
    ;extension=imap
    ;extension=ldap
    ;extension=mbstring
    ;extension=exif      ; Must be after mbstring as it depends on it
    ;extension=mysqli
    ;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
    ;extension=oci8_19  ; Use with Oracle Database 19 Instant Client
    ;extension=odbc
    ;extension=openssl
    ;extension=pdo_firebird
    extension=pdo_mysql
    ;extension=pdo_oci
    ;extension=pdo_odbc
    ;extension=pdo_pgsql
    ;extension=pdo_sqlite
    ;extension=pgsql
    ;extension=shmop
    Et n'apparaît toujours pas dans mon phpinfo().

    Merci de votre aide

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Bonsoir,

    Bon finalement le problème est réglé. désinstallation complète du LAMP avec purge et suppression de tous les dossiers apache, mysql, php ... puis installation nouvelle afin de retrouver une install propre. Configuration mysql et phpmyadmin, et tout est OK. Reste plus que quelques bricoles.

    Merci encore et bonne continuation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 24/10/2015, 14h30
  2. Apex, VisualForce Classe, "Map key <valeur> not found in map"
    Par Majinfrede dans le forum Salesforce.com
    Réponses: 11
    Dernier message: 13/08/2014, 17h09
  3. Réponses: 0
    Dernier message: 18/11/2012, 15h58
  4. [1.x] Fatal error: Class 'PDO' not found in...
    Par Bizoo dans le forum Débuter
    Réponses: 2
    Dernier message: 30/11/2010, 21h13
  5. [1.x] Fatal error: Class 'PDO' not found
    Par phpiste dans le forum Symfony
    Réponses: 5
    Dernier message: 14/07/2010, 12h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo