Uncaught PDOException: не удалось найти драйвер, даже когда есть расширения - PullRequest
0 голосов
/ 22 ноября 2018

Еще одна ошибка, которая сводит меня с ума.Я прочитал буквально 50 сообщений в stackoverflow и перепробовал все разные решения:

  • Проверка php.ini, чтобы увидеть, включены ли расширения, и папка, чтобы проверить наличие dll

Enabled and extension_dir pointing to the correct dir too

Present in phpinfo()

Files present in xampp/php/ext

  • Также попытался извлечь файл php_pdo_mysql.dll из последней версии php, проверив, возможно, исходный файл xampp был разбит или поврежден без удачи.

  • Установка пути впеременные окружения

Это то, что я использую для своей локальной среды:

  • Xampp 7.2.4
  • PHP 7.2.4
  • Apache 2.4.33

А это мой код:

return new PDO('
    mysql:host='.Env::getInstance()->env('dbhost').';
    dbname='.Env::getInstance()->env('dbname'),
    Env::getInstance()->env('dbusername'),
    Env::getInstance()->env('dbpassword')
);

Есть что-то, что я еще не пробовал?пожалуйста, я хочу решить эту проблему раз и навсегда.

Заранее спасибо.

1 Ответ

0 голосов
/ 22 ноября 2018

Аргументы, передаваемые конструктору PDO, должны быть похожи на $ dsn в примере руководства по php ниже.

<?php
/* Connect to a MySQL database using driver invocation */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>

Похоже, ваш первый аргумент имеет неверное содержание.

...