我尝试在 laravel 上使用 postgresql 但找不到驱动程序(SQL: select * from "users" where "id" = 4 l

Posted

技术标签:

【中文标题】我尝试在 laravel 上使用 postgresql 但找不到驱动程序(SQL: select * from "users" where "id" = 4 limit 1)【英文标题】:I tried using postgresql on laravel but got could not find driver (SQL: select * from "users" where "id" = 4 limit 1) 【发布时间】:2021-03-17 01:17:57 【问题描述】:

各位工匠们,大家好,请问我在使用 PostgreSql 时遇到问题,我有一个正在使用 mysql 的应用程序并且一切正常,但是我必须使用另一个数据库 PostgresSql,我进行了必要的连接并运行了 php artisan migrate,迁移运行没有错误并创建了表,但是当我尝试注册新用户时,出现此错误。

我已经清除了我的缓存、路由、配置和视图

php artisan config:cache
php artisan route:clear
php artisan view:clear
php artisan cache:clear

.env

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=mydatabase
DB_USERNAME=postgres
DB_PASSWORD=mypassword

我正在使用 WAMP,所以我在 php.ini

中取消了 pgsql 扩展的注释
;extension=pdo_odbc
extension=pdo_pgsql
extension=pdo_sqlite
extension=pgsql
;extension=phpdbg_webhelper

运行php -m,它也列出了pdo_pgsql

【问题讨论】:

当你使用php -m | grep pgsql时,输出的是什么? 【参考方案1】:

您似乎启用了缺少扩展名。我们还需要在php.ini 中启用php_pgsqlphp_pdo_pgsql,因为您的PHP 安装不支持PostgreSQL。

启用此扩展后,您可能无法在phpinfo 中看到已安装的扩展。在这种情况下,您应该检查错误日志;您可能需要安装其他库。

【讨论】:

【参考方案2】:

感谢大家的贡献,但我想我的系统是原因,因为似乎我最初做的一切都是正确的,发生的事情是,在我收到那个错误并且我无法解决它之后,我切换回MySql 继续我的任务,最后,我需要重新启动系统进行系统更新,重新启动后,我说我应该给 PostgreSql 一个机会,我将我的 .env 编辑回上面的配置,并运行 php artisan config:cache,(我之前做过)并且错误消失了,我现在在我的 laravel 应用程序中使用 PostgreSql。

我的观察

    在我的 php.ini 中取消注释 pgsqlpdo_pgsql 后,我需要重新启动系统。 我必须停止我的 WAMPSERVER 并且我的 php artisan serve 正在运行,我应该停止并重新启动它们。

【讨论】:

以上是关于我尝试在 laravel 上使用 postgresql 但找不到驱动程序(SQL: select * from "users" where "id" = 4 l的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel Blade 从 Postgres 显示 JSON 数据

Laravel 5 + PostgreSQL:“未配置数据库 [postgres]。”错误

将 postgres 与 laravel 连接起来

在 Laravel 中使用诸如 JSON 函数之类的 Postgres 功能

如何使用 eloquent 在 laravel 迁移中删除 POSTGRES 表或视图?

如何让我在 Heroku 上的 Laravel 项目使用 Heroku Postgres?