未定义的类常量'MYSQL_ATTR_INIT_COMMAND'; phpinfo没有显示PDO扩展,但php -i(php -m)可以

时间:2015-06-24 18:48:36

标签: php mysql apache zend-framework

我正在学习Zend框架,通过Album示例。

当我打开浏览器访问相册模块时,我收到此错误:

  

致命错误:未定义的类常量'MYSQL_ATTR_INIT_COMMAND'

在大量谷歌搜索和堆栈溢出之后,PDO似乎没有激活。

真正让我感到困惑的是,当我从命令行使用'php -i'时,我确实看到PDO已启用。但phpinfo()没有显示PDO。

我已经尝试了几件事。他们没有工作:

  1. 将绝对路径设置为“extension_dir”。

  2. 将php文件夹的路径添加到'path'环境变量。

  3. 删除php + apache,再次安装。

  4. 当然,取消注释extension = php_pdo_mysql.dll。

  5. 请帮忙!

1 个答案:

答案 0 :(得分:0)

感谢Mark B.他在评论中提出了正确的答案。

浏览器中带有phpinfo()的.php文件显示php从C:\ Windows加载了php.ini,但在我的C:\ Windows下没有php.ini。它之所以如此,是因为php.ini会覆盖php的编译默认值。所以我用phpinfo()看到了编译后的默认值。

我在我的虚拟主机中使用PHPIniDir指向带有php.ini文件的实际文件夹。然后我看到了PDO扩展,一切正常。

PS:马克,如果你发表答案,我会删除我的并接受你的。