$db = new PDO('mysql:dbname=xnews;host=localhost;port=' . $LOCAL_DB_PORT,
$LOCAL_DB_USER,
$LOCAL_DB_PASS,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'")
);
reports:
Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
Is it renamed?
I just had the same error (with PHP 5.2.6), and all I had to do is enable the MySQL-specific PDO driver:
In your php.ini
file, you should have the following line (uncommented):
extension=php_pdo_mysql.dll
on Windowsextension=php_pdo_mysql.so
on Linux/Macopen php.ini
in a text editor
C:\Program Files (x86)\PHP\v5.X\php.ini
(substitute v5.x with the version you installed) or C:\Windows\php.ini
, etc./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.php --ini | find /i "Loaded"
in Windows command prompt ORphp --ini | grep "Loaded"
in Linux/Mac terminalphpinfo()
, and looking for the line "Loaded Configuration File"and remove the semicolon from the beginning of the following line (to uncomment it):
;extension=php_pdo_mysql.dll
on Windows
;extension=php_pdo_mysql.so
on Linux/Macphp.ini
:
extension=php_pdo_mysql.dll
on Windowsextension=php_pdo_mysql.so
on Linux/MacYou may need to restart your web server.
That solved my problem.