PHP Fatal error: Uncaught PDOException: could not find driver

I had the same problem, resulting from some incompatibility (not immediately evident) between the Apache and PHP versions I had downloaded. Try writing a toy PHP script that simply creates a new PDO object, - something like:

<?php

$dbname   = 'mydb';
$username = 'myuser';
$password = 'mypassword';
try {
    $pdo = new \PDO("mysql:host=localhost;dbname=$dbname", $username,  $password);
} catch (Exception $e) {
    print $e->getMessage() . "\n";
}
print "OK\n";

Then run that script from the command line. If you don't get the 'could not find driver' error message, then that points to an incompatibility between your PHP and Apache versions.


To use different drivers you need to install them.

On Windows you simply uncomment a line in php.ini:

extension=php_pdo_mysql.dll

On Debian or similar Linux distribution you can just install the extension with the package manager:

sudo apt update
sudo apt install php7.1-mysql

Remember to install the correct version.


In my PHP 7.4 I didn't get php.ini. Instead, I have php.ini-development and php.ini-production. So, I have created a new php.ini file only and copied the configurations into it.

Then I have uncommented and changed the extension directory to the full installation path.

 extension_dir = "C:/php/ext"

And uncommented:

 extension=pdo_mysql

Finally, restart the server.

Tags:

Mysql

Php

Pdo