PDO例外仅适用于Laravel中的PostgreSQL连接,但手工命令有效


PDO exception only for PostgreSQL connections in Laravel but artisan commands work

我是laravel的新手。我刚刚从mysql迁移到postgresql,并成功地手工迁移了我所有的表,并通过修补程序对它们进行了种子处理。然而,我所有使用mysql和SQL查询的样板文件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

我花了几个小时寻找这个问题的解决方案,我已经取消了extension=php_pgsql.dll&extension=php_pdo_pgsql.dll,在生产和开发php.ini文件中,我已经将LoadFile"c:''mamp/bin/php/php5.6.13/libpq.dll"添加到Apache文件夹中的hhtp.conf中,我有composer dump自动加载。laravel的查询没有像migrate命令那样显示在postgres错误日志中。我不记得我是如何检查的,但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',
    ],

我的env

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