I have been trying to connect to MySQL from PHP using PDO. However, I get this error message:
PHP Fatal error: Uncaught PDOException: could not find driver in /home/abdullah/Documents/projects/cs50_radio/public/test.php:5 Stack trace: #0 /home/abdullah/Documents/projects/cs50_radio/public/test.php(5): PDO->__construct('mysql:host=127....')
PDO is enabled and installed. I checked phpinfo(), but I can't figure out the error.
Here is my code used to connect:
<?php
$user = "root";
$pass = "root";
$dbh = new PDO("mysql:host=127.0.0.1;dbname=radio;port=3306", $user, $pass);
//$dbh->query('INSERT INTO users (name) VALUES ("abdullah")');
$dbh = null;
?>
Should my project folder contain any additional drivers or files? Or am I missing something in my code?
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With