在 laravel 中找不到用于 sqlite 的 pdo 异常驱动程序

Posted

技术标签:

【中文标题】在 laravel 中找不到用于 sqlite 的 pdo 异常驱动程序【英文标题】:pdo exception driver not found in laravel for sqlite 【发布时间】:2016-12-21 08:18:11 【问题描述】:

当我运行php artisan migrate 命令时,我得到:

[PDOException] 找不到驱动程序。

我将我的默认数据库设为 sqlite,并使用php -i 命令检查是否有用于 sqlite 的 pdo 驱动程序。我无法理解我的问题。

【问题讨论】:

你的驱动真的安装了吗?它在你的 php.ini 中启用了吗? 你运行的是什么操作系统? 我使用的是 ubuntu 16.04 有人发现了巫术吗?同样的错误在这里... 【参考方案1】:

对于使用 Windows 和 Xampp 的用户 只需在 php.ini 中取消注释这些行:

extension=pdo_sqlite

extension=sqlite3

【讨论】:

【参考方案2】:

您需要在您的服务器上安装 PDO,或者您可能只需要在您的 php.ini 文件中注释掉以下行。

;extension=pdo_sqlite

(删除; 字符)

然后您应该重新启动服务器。

【讨论】:

【参考方案3】:

您的系统缺少php SQLite 安装。

使用以下方式安装:

sudo apt-get install php7.0-sqlite

然后重启你的apache服务器

sudo /opt/lampp/lampp restart

【讨论】:

帮忙。我打算使用 sqlite 进行测试,我在 database.php 配置文件中将我的数据库设置为storage_path('test.sqlite')。我假设test.sqlite 应该是一个二进制文件。如何创建test.sqlite?我是否只创建一个扩展名为 .sqlite 的文件? 对于 php 7.1 只需使用 sudo apt-get install php7.1-sqlite 请注意,PHP 的 sqlite 模块是它自己的包,除了 sqlite 本身之外,还必须安装它。 (对于 Arch linux,包名称是 php-sqlite。)您还必须在 php.ini 中启用 pdo_sqlite.sosqlite3.so 扩展。【参考方案4】:

我使用的是 Laravel 5.3,我不得不注释掉 .env 文件中的一些参数。

DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=homestead
# DB_USERNAME=homestead
# DB_PASSWORD=secret

【讨论】:

【参考方案5】:

如果您使用 sqlite 并尝试更改表或删除列,您必须要求 doctrine/dbal,正如 Laravel docs 中所建议的那样。

只需发送composer require doctrine/dbal 并重试迁移。

【讨论】:

以上是关于在 laravel 中找不到用于 sqlite 的 pdo 异常驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

在 Ionic 5 中找不到电容器社区/sqlite 的 GlobalSQLite 文件

Laravel 4在TestCase中找不到测试

在 Laravel 中找不到异常类

在 laravel 5.4 中找不到类“Illuminate\Foundation\Application”

在 Laravel 中找不到类“App\Http\Controllers\Excel”

在 laravel-8 中找不到 Laravel PHP 错误 404 [重复]