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 :

PDO "could not find driver" avec MariaDB


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Par défaut PDO "could not find driver" avec MariaDB
    Bonjour,

    Problème qui me rend fou : j'essaie de commencer à coder la partie de mon projet qui va se connecter à une base de donnée que j'ai créée sur MariaDB (que j'ai installé en local).
    La BDD en question est accessible avec DBeaver, tout fonctionne.

    Sauf que PHP est incapable de fonctionner.
    Le code suivant (je ne mets pas tout, vous devez me faire confiance concernant les variables créées en amont) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    try {
    	$dsn = "mysql:host={$dbHost};dbname={$dbName}";
    	$pdo = new PDO($dsn, $dbUser, $dbPass);
    	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	// Database connection successful
    	echo "Connected to the database successfully!";
    } catch (PDOException $e) {
    	// Log the error, do not expose sensitive details to the user
    	error_log("Database connection error: " . $e->getMessage());
    	echo $e->getMessage()."<br/>";
    	die("An error occurred during database connection.");
    }
    Entraîne un message "could not find driver" dans ma page.

    Si j'accède à phpinfo() j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PDO support	enabled
    PDO drivers	no value
    Je viens de passer 1h à chercher des retours de ce problème sur le web,sans succès. Tous ne parlent que d'activer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    extension=pdo_mysql
    extension_dir = "ext"
    Puis de redémarrer Apache, ce que j'ai fait mais sans succès.

    EDIT :

    J'ai une série d'erreur Apache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Cannot load Zend OPcache - it was built with configuration API420230831,NTS,VS16, whereas running engine is API420230831,TS,VS16
    PHP Warning:  PHP Startup: bz2: Unable to initialize module\nModule compiled with build ID=API20230831,NTS,VS16\nPHP    compiled with build ID=API20230831,TS,VS16\nThese options need to match\n in Unknown on line 0
    PHP Warning:  PHP Startup: exif: Unable to initialize module\nModule compiled with build ID=API20230831,NTS,VS16\nPHP    compiled with build ID=API20230831,TS,VS16\nThese options need to match\n in Unknown on line 0
    PHP Warning:  PHP Startup: mysqli: Unable to initialize module\nModule compiled with build ID=API20230831,NTS,VS16\nPHP    compiled with build ID=API20230831,TS,VS16\nThese options need to match\n in Unknown on line 0
    PHP Warning:  PHP Startup: pdo_mysql: Unable to initialize module\nModule compiled with build ID=API20230831,NTS,VS16\nPHP    compiled with build ID=API20230831,TS,VS16\nThese options need to match\n in Unknown on line 0
    PHP Warning:  PHP Startup: zip: Unable to initialize module\nModule compiled with build ID=API20230831,NTS,VS16\nPHP    compiled with build ID=API20230831,TS,VS16\nThese options need to match\n in Unknown on line 0

  2. #2
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    441
    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 : 441
    Par défaut
    Bonjour,

    Comment as-tu installé PHP en local ? Sur quel OS ?

    Parfois, PHP utilise différents fichiers de configurations php.ini : un pour PHP CLI et un pour PHP via Apache par exemple.

    Dans la page phpinfo, vérifie que tu modifies le bon fichier de configuration indiqué à la ligne "Loaded configuration file".
    Tu peux également y activer la directive display_startup_errors pour afficher les éventuelles erreurs lors du chargement des extensions.

    Suite à ton edit : il semble que tu essayes d'utiliser des extensions NTS (non thread safe) sur un PHP TS (thread safe), ce qui n'est pas compatible.
    Essaye de réinstaller PHP et les extensions depuis des sources officielles.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Par défaut
    Salut.
    Suite à ton edit : il semble que tu essayes d'utiliser des extensions NTS (non thread safe) sur un PHP TS (thread safe), ce qui n'est pas compatible.
    Bingo ! Et j'étais précisément en train de m'apercevoir de ça (facepalm). J'ai en effet plusieurs installations de PHP en local (j'installe tout à la main, y compris Apache), et j'avais hésité à une époque entre la version NTS ou pas. Et là juste avant que tu postes ton message, j'ai ouvert RapidEnvironmentEditor pour vérifier ma variable PATH, et me suis aperçu qu'elle contenait le chemin vers la version NTS alors qu'Apache utilise la normale.

    Ceci dit ça ne semble pas régler le problème, je vais peut-être devoir redémarrer Windows pour que ça prenne bien en compte (pourtant j'ai fait un ECHO de la variable dans CMD.exe et c'est bon).
    Merci pour ton retour, car en examinant de plus près ce que j'avais mis en message d'erreur, j'ai deviné comment tu as fait pour voir le problème (on a effectivement mention de TS et NTS dans les messages). Bien joué !

Discussions similaires

  1. [PDO] Erreur PDO : could not find driver
    Par cmdrol dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 16/08/2023, 01h29
  2. PDO could not find driver
    Par Akame14 dans le forum Langage
    Réponses: 0
    Dernier message: 05/08/2020, 11h05
  3. [MySQL] Erreur : could not find driver avec PDO sur free
    Par Patr77 dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 25/03/2015, 10h36
  4. [PDO] Connexion avec PDO [Erreur : could not find driver]
    Par Berlo56 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 22/04/2014, 10h41
  5. [Oracle] Oracle : could not find driver
    Par Hug0_76 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 22/02/2007, 13h00

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