我尝试在 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_pgsql
和php_pdo_pgsql
,因为您的PHP 安装不支持PostgreSQL。
启用此扩展后,您可能无法在phpinfo
中看到已安装的扩展。在这种情况下,您应该检查错误日志;您可能需要安装其他库。
【讨论】:
【参考方案2】:感谢大家的贡献,但我想我的系统是原因,因为似乎我最初做的一切都是正确的,发生的事情是,在我收到那个错误并且我无法解决它之后,我切换回MySql 继续我的任务,最后,我需要重新启动系统进行系统更新,重新启动后,我说我应该给 PostgreSql 一个机会,我将我的 .env 编辑回上面的配置,并运行 php artisan config:cache,(我之前做过)并且错误消失了,我现在在我的 laravel 应用程序中使用 PostgreSql。
我的观察
-
在我的 php.ini 中取消注释 pgsql 和 pdo_pgsql 后,我需要重新启动系统。
我必须停止我的 WAMPSERVER 并且我的 php artisan serve 正在运行,我应该停止并重新启动它们。
【讨论】:
以上是关于我尝试在 laravel 上使用 postgresql 但找不到驱动程序(SQL: select * from "users" where "id" = 4 l的主要内容,如果未能解决你的问题,请参考以下文章
使用 Laravel Blade 从 Postgres 显示 JSON 数据
Laravel 5 + PostgreSQL:“未配置数据库 [postgres]。”错误
在 Laravel 中使用诸如 JSON 函数之类的 Postgres 功能