我刚刚安装了Debian Lenny与Apache, MySQL和PHP,我收到一个PDOException无法找到驱动程序。
这是它所引用的特定代码行:
$dbh = new PDO('mysql:host=')。DB_HOST。”;dbname = '。Db_name, db_user, db_pass)
DB_HOST、DB_NAME、DB_USER和DB_PASS是我已经定义的常量。它在生产服务器(以及我之前的Ubuntu server设置)上运行良好。
这与我的PHP安装有关吗?
在网上搜索也没有帮助,我得到的都是专家交流和例子,但没有解决方案。
对于那些使用Symfony2/3并想知道为什么会得到这个错误的人。如果您正在使用“mapping_types”,则可能会遇到此错误。原因是“mapping_types”被放在了错误的级别。例如:
doctrine:
dbal:
mapping_types:
set: string
这个“mapping_types”必须放在这个级别:
doctrine:
dbal:
#To counter the error caused by 'mapping_types'
connections:
default:
server_version: %database_server_version%
mapping_types:
set: string
我希望这对你们有帮助
我在这里找到了解决方案:https://github.com/doctrine/DoctrineBundle/issues/327
我花了最后一天的时间试图弄清楚为什么我会得到以下错误。我运行的是Ubuntu 14.04。
存在的问题:
我注意到我的php - cli版本运行的是php7.0,但php_info() (web版本)显示的是php 5.5.9。尽管php_info()说pdo已启用,但使用命令行(CLI)无法识别pdo_mysql命令。原来我的旧版本启用了mysql,但CLI版本没有启用。我所做的就是为php7.0安装mysql,它就可以工作了。
这是有效的方法:
查看版本信息:
php -v
安装mysql for php7.0
sudo apt-get install php7.0-mysql
1)确保你的CLI版本与你的网页版本相同
2)如果它们是不同的,确保你的CLI版本有mysql插件,因为它没有作为默认提供。