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

Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'; phpinfo shows no PDO extensions, but php -i (php -m) do

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

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

Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

经过大量谷歌搜索和 Whosebuging 后,PDO 似乎未激活。

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

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

  1. 设置绝对路径为'extension_dir'。

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

  3. 删除php + apache,重新安装。

  4. 当然,取消注释扩展名=php_pdo_mysql.dll.

请帮忙!

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

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

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

PS:马克,如果你 post 你的回答,我会删除我的并接受你的。