php - PDO 异常仅适用于 Laravel 中的 PostgreSQL 连接,但 artisan 命令有效

标签 php postgresql pdo laravel-artisan

我是 laravel 的新手。我刚刚从 mysql 迁移到 postgresql 并设法手工迁移我所有的表并通过修补程序为它们播种。但是,我所有尝试使用在 mysql 上运行的样板 laravel auth 的尝试都返回了 .

PDOException in Connector.php line 55:
could not find driver in Connector.php line 55
at PDO->__construct('pgsql:host=localhost;dbname=dbname;port=5432','postgres', 'password', array('0', '2', '0', false)) in Connector.php line 55

我花了几个小时寻找这个问题的解决方案,我在生产和开发 php.ini 文件中都取消了 extension=php_pgsql.dll & extension=php_pdo_pgsql.dll 的注释,我添加了 LoadFile "c:/mamp/bin/php/php5.6.13/libpq.dll"到 Apache 文件夹中的 hhtp.con,我有 Composer 转储自动加载。来自 laravel 的查询没有显示在 postgres 错误日志中,而 migrate 命令会这样做。我不记得我是如何检查的,但似乎安装了 PDO 模块

我的数据库.php

'default' => env('DB_CONNECTION', 'pgsql'), 
 'pgsql' => [
        'driver' => 'pgsql',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '5432'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset' => 'utf8',
        'prefix' => '',
        'schema' => 'public',
    ],

我的环境

APP_URL=http://localhost
DB_HOST=localhost
DB_DATABASE=database
DB_USERNAME=postgres
DB_PASSWORD=password
APP_ENV=local
APP_DEBUG=true

CACHE_DRIVER=file
SESSION_DRIVER=file
 QUEUE_DRIVER=sync

 REDIS_HOST=127.0.0.1
 REDIS_PASSWORD=null
 REDIS_PORT=6379

 MAIL_DRIVER=smtp
  MAIL_HOST=mailtrap.io
 MAIL_PORT=2525
 MAIL_USERNAME=null
 MAIL_PASSWORD=null
 MAIL_ENCRYPTION=null

请大神给我一个答案

C:\MAMP\htdocs\storybox1.0\public>php -r "print_r(get_loaded_extensions());"
Array
(
[0] => Core
[1] => bcmath
[2] => calendar
[3] => com_dotnet
[4] => ctype
[5] => date
[6] => ereg
[7] => filter
[8] => hash
[9] => iconv
[10] => json
[11] => mcrypt
[12] => SPL
[13] => odbc
[14] => pcre
[15] => Reflection
[16] => session
[17] => sockets
[18] => standard
[19] => mysqlnd
[20] => tidy
[21] => tokenizer
[22] => zip
[23] => zlib
[24] => libxml
[25] => dom
[26] => PDO
[27] => pdo_mysql
[28] => openssl
[29] => SimpleXML
[30] => soap
[31] => wddx
[32] => xml
[33] => xmlreader
[34] => xmlwriter
[35] => curl
[36] => mbstring
[37] => Phar
[38] => pdo_pgsql
[39] => pgsql

)

1 , 2

最佳答案

我一定是看电脑太久了,我从 phpinfo() 得到的 PHP.ini 路径和我看的不一样。谢谢 Alvaro 和 Chris,你是对的,php.ini 文件在 mamp/config 而不是 mamp/bin/php

关于php - PDO 异常仅适用于 Laravel 中的 PostgreSQL 连接,但 artisan 命令有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36565174/

相关文章:

php - 将数据库中的所有表显示到php中的选择表单中

python - Digital ocean 和 django 的操作错误

postgresql - Odoo 与 Google App Engine NDB |从 postgresql 移植到 NDB

javascript - 从远程 html 页面加载 div 并将其附加到当前页面

php - 如何使用 PHP 在 Facebook 上分享帖子?

javascript - 如何在不刷新的情况下通知数据发生变化?

postgresql - WHERE 如何处理 Postgres 中的空子查询?

php - 正确使用PDO过程不使用全局

php - 是否可以在 session 中进行 session ?

php - 当查询没有返回记录时,如何通过 PDO/Sqlite 获取列名?