我今天试了一下Symfony 2,我试着玩了一下Doctrine。
但是当我在命令行中使用命令php app/console doctrine:schema:create
时,它返回以下错误:
[PDOException]
could not find driver
doctrine:schema:create [--dump-sql] [--em[="..."]]
我的php.ini文件和phpinfo()cleary显示PDO驱动程序已经加载。我还用纯PHP创建了一个小脚本,使用PDO连接到我的数据库,它工作得很好。没有错误,所以PDO安装得很好,工作正常。
PHP和MySQL正在我的计算机上运行,使用的是最新版本的EasyPHP。
教条可能出了什么问题?我现在该往哪里看?
8条答案
按热度按时间628mspwn1#
是的,如果你在命令行输入
php -m
,它应该同时列出PDO
和pdo_mysql
。在我的例子中,它只显示PDO
,这就是为什么它找不到MySQL驱动程序。正如您已经评论过的,我认为这是因为PHP CLI找不到合适的
php.ini
文件。cvxl0en22#
您需要正确配置您的php cli,以加载web服务器版本配置加载的相同扩展。
下面是PHP在其中搜索配置文件的link
liwlm1x93#
php5-mysql下载安装程序
会变魔术
nxagd54h4#
在命令行上,检查是否支持PDO:
如果没有,请搜索php mysql支持(Ubuntu):
并安装它:
再次安装packagem check之后,应该可以看到PDO mysql支持。
dluptydi5#
在我的例子中,我尝试从本地终端而不是从Docker容器运行bin/console。
也许它会帮助其他人!
eivgtgni6#
如果你在你的php安装中编辑php.ini,那个.ini文件就是phpinfo()中指定的文件,而且你对php.ini的修改仍然没有在symfony项目中显示出来,你需要在你项目的根目录中创建一个php.ini文件,并在那里添加你想要覆盖的值。
扫描此目录以查找其他.ini文件现在应显示项目根目录。
解析的其他.ini文件应显示新项目特定的php.ini文件。
(我正在本地运行Symfony 3.3应用程序)
js4nwp547#
注意,这个错误并不特定于缺少哪个驱动程序,在我的例子中,我有PDO和PDO_MYSQL,但它也需要PDO_sqlsrv。
运行
php app/console doctrine:schema:create -vvv
以获得更详细的信息。wqlqzqxt8#
在我的例子中,我在laravel 7.x项目中安装了带有命令bellow的条令。
所以 composer 在我的laravel 7. x项目中安装了最后一个doctrine/dbal版本,然后这个错误出现了。
所以,也可能是学说/dbal版本。