php 为什么Doctrine说它找不到PDO驱动程序?

vojdkbi0  于 2023-03-11  发布在  PHP
关注(0)|答案(8)|浏览(134)

我今天试了一下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。
教条可能出了什么问题?我现在该往哪里看?

628mspwn

628mspwn1#

是的,如果你在命令行输入php -m,它应该同时列出PDOpdo_mysql。在我的例子中,它只显示PDO,这就是为什么它找不到MySQL驱动程序。
正如您已经评论过的,我认为这是因为PHP CLI找不到合适的php.ini文件。

cvxl0en2

cvxl0en22#

您需要正确配置您的php cli,以加载web服务器版本配置加载的相同扩展。
下面是PHP在其中搜索配置文件的link

liwlm1x9

liwlm1x93#

php5-mysql下载安装程序
会变魔术

nxagd54h

nxagd54h4#

在命令行上,检查是否支持PDO:

php -m|grep -i pdo

如果没有,请搜索php mysql支持(Ubuntu):

apt-cache search php5*|grep mysql

并安装它:

sudo apt-get install php5-mysql

再次安装packagem check之后,应该可以看到PDO mysql支持。

dluptydi

dluptydi5#

在我的例子中,我尝试从本地终端而不是从Docker容器运行bin/console。
也许它会帮助其他人!

eivgtgni

eivgtgni6#

如果你在你的php安装中编辑php.ini,那个.ini文件就是phpinfo()中指定的文件,而且你对php.ini的修改仍然没有在symfony项目中显示出来,你需要在你项目的根目录中创建一个php.ini文件,并在那里添加你想要覆盖的值。

扫描此目录以查找其他.ini文件现在应显示项目根目录。
解析的其他.ini文件应显示新项目特定的php.ini文件。

(我正在本地运行Symfony 3.3应用程序)

js4nwp54

js4nwp547#

注意,这个错误并不特定于缺少哪个驱动程序,在我的例子中,我有PDO和PDO_MYSQL,但它也需要PDO_sqlsrv。
运行php app/console doctrine:schema:create -vvv以获得更详细的信息。

wqlqzqxt

wqlqzqxt8#

在我的例子中,我在laravel 7.x项目中安装了带有命令bellow的条令。

composer require doctrine/dbal

所以 composer 在我的laravel 7. x项目中安装了最后一个doctrine/dbal版本,然后这个错误出现了。
所以,也可能是学说/dbal版本。

相关问题