Laravel和PHP单位:找不到驱动程序(SQL:PRAGMA外键= ON;)

j8yoct9x  于 2022-12-01  发布在  PHP
关注(0)|答案(8)|浏览(243)

我已经用phpunit运行了我的laravel应用程序。一切都很好,直到在某个时候,当我再次运行我的测试时,结果出现了这个错误。

Illuminate\Database\QueryException: could not find driver (SQL: PRAGMA foreign_keys = ON;)

Caused by
PDOException: could not find driver

下面是我的phpunit.xml文件:
第一次
在laravel 6和phpunit中有人遇到过这个错误吗?

ljsrvy3e

ljsrvy3e1#

如果你面对这个问题
(找不到驱动程序(SQL:PRAGMA外键= ON;))
您可以简单地在Ubuntu系统上运行以下命令

sudo apt-get install php-sqlite3

同样,如果你想安装特定的版本,如php 8. 1,只需运行下面的命令

sudo apt install php8.1-sqlite3

你可能也需要在php.ini中启用pdo_sqlite扩展,你可以用下面的命令获取你加载的ini的路径:

php --ini

只需将extension=pdo_sqlite添加到您的php.ini中,并通过运行以下命令验证它是否已加载

php -m | grep pdo_sqlite

"我想这对你有帮助,谢谢"

7gyucuyw

7gyucuyw2#

这实际上是发生在我在laragon中升级我的php版本之后。解决方案是在laragon中启用php扩展上的pdo_sqlite。就是这样。这个答案在这里找到https://laracasts.com/discuss/channels/general-discussion/phpunit-sqlite-error-after-updating-laragon-pdoexception-could-not-find-driver

aor9mmx1

aor9mmx13#

PHP 8.1中的代码
sudo apt install php8.1-sqlite3
请注意,它需要8.1部分!

5jvtdoz2

5jvtdoz24#

这是因为PDO Sqlite没有启用。要在Laragon中启用它,只需打开Laragon,点击菜单〉PHP〉扩展〉pdo_sqlite就是这样。
如果你不使用Laragon,解决方案可能会有所不同。谢谢

r8uurelv

r8uurelv5#

只需对php.ini文件进行以下更改

extension_dir = "<php installation directory>/php-7.4.3/ext"
extension=php_pdo_sqlite.dll
extension=php_sqlite3.dll
sqlite3.extension_dir = "<php installation directory>/php-7.4.3/ext"
weylhg0b

weylhg0b6#

如果您在Laragon中有多个版本的PHP,您仍然会看到错误。**解决方案是在所有版本上启用pdo_sqlite扩展。**原因是Laragon有自己的PHP,但Laravel使用系统PHP,您可能不知道哪个是系统PHP版本。

j2datikz

j2datikz7#

对于那些使用Windows的人;
导航到php.ini文件(-C:\php\php.ini)
启用下列项目:

;extension=pdo_sqlite by removing the /;/ should look like this extension=pdo_sqlite

;extension=sqlite3 should be extension=sqlite3 without the ; symbol
qmb5sa22

qmb5sa228#

只要从php.ini文件启用这两个扩展就可以了。

extension=pdo_sqlite

extension=sqlite3

相关问题