Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' with pdo
Solution 1:
I just had the same error (with PHP 5.2.6), and all I had to do is enable the MySQL-specific PDO driver:
TL;DR
In your php.ini
file, you should have the following line (uncommented):
-
extension=php_pdo_mysql.dll
on Windows -
extension=php_pdo_mysql.so
on Linux/Mac
Longer explanation:
-
open
php.ini
in a text editor- e.g. its default path on Windows:
C:\Program Files (x86)\PHP\v5.X\php.ini
(substitute v5.x with the version you installed) orC:\Windows\php.ini
, etc. - or on Linux:
/etc/php5/apache2/php.ini
(e.g. this is the path on Ubuntu) or/etc/php5/cli/php.ini
,/etc/php5/cgi/php.ini
, etc. -
or you can get to know where it is like this:
php --ini | find /i "Loaded"
in Windows command prompt ORphp --ini | grep "Loaded"
in Linux/Mac terminal- using
phpinfo()
, and looking for the line "Loaded Configuration File"
- e.g. its default path on Windows:
-
and remove the semicolon from the beginning of the following line (to uncomment it):
-
;extension=php_pdo_mysql.dll
on Windows- OR
;extension=php_pdo_mysql.so
on Linux/Mac
- OR
- of course, if this line doesn't exist, you should paste it
- so as a result the expected line would look like this in
php.ini
:-
extension=php_pdo_mysql.dll
on Windows - OR
extension=php_pdo_mysql.so
on Linux/Mac
-
-
-
You may need to restart your web server.
That solved my problem.
Solution 2:
I got the same error, on debian6, when I had not yet installed php5-mysql
.
So I installed it, then restarted apache2
apt-get install php5-mysql
/etc/init.d/apache2 restart
Then the error went away.
If you have the same error on Ubuntu, instead of:
/etc/init.d/apache2 restart
Type:
service apache2 restart