我是 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
)
最佳答案
我一定是看电脑太久了,我从 phpinfo() 得到的 PHP.ini 路径和我看的不一样。谢谢 Alvaro 和 Chris,你是对的,php.ini 文件在 mamp/config 而不是 mamp/bin/php
关于php - PDO 异常仅适用于 Laravel 中的 PostgreSQL 连接,但 artisan 命令有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36565174/