$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'")
);
报告:
Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
改名了吗?
最佳答案
我刚刚遇到了同样的错误(使用 PHP 5.2.6),我所要做的就是 enable the MySQL-specific PDO driver :
长话短说
在您的 php.ini
文件中,您应该有以下行(未注释):
extension=php_pdo_mysql.dll
在 Windows 上extension=php_pdo_mysql.so
在 Linux/Mac 上
更长的解释:
在文本编辑器中打开
php.ini
- 例如它在 Windows 上的默认路径:
C:\Program Files (x86)\PHP\v5.X\php.ini
(用您安装的版本替换 v5.x)或C:\Windows\php.ini
等 - 或在 Linux 上:
/etc/php5/apache2/php.ini
(例如,这是 Ubuntu 上的路径)或/etc/php5/cli/php.ini
、/etc/php5/cgi/php.ini
等 - 或you can get to know where it is like this :
php --ini |在 Windows 命令提示符中找到/i "Loaded"
或php --ini | Linux/Mac 终端中的 grep "Loaded"
- 使用
phpinfo()
,并寻找行 “Loaded Configuration File”
- 例如它在 Windows 上的默认路径:
和从下一行的开头删除分号(取消注释):
;extension=php_pdo_mysql.dll
在 Windows 上- 或
;extension=php_pdo_mysql.so
在 Linux/Mac 上
- 或
- 当然,如果这一行不存在,你应该粘贴
- 因此作为结果,预期的行在
php.ini
中看起来像这样:extension=php_pdo_mysql.dll
在 Windows 上- 或在 Linux/Mac 上
extension=php_pdo_mysql.so
您可能需要重新启动您的网络服务器。
这解决了我的问题。
关于php - 未定义类常量 'MYSQL_ATTR_INIT_COMMAND' 与 pdo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2424343/