Hyp*_*ion 65 php database postgresql syntax-error laravel
我正在尝试通过Laravel连接PostgreSQL数据库,以便进行php工匠迁移,但似乎没有被定向,因为它正在读取MySQL的数据库名称.
以下是来自database.php的命令:
'connections' => array(
'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'/../database/production.sqlite',
'prefix' => '',
),
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'pgsql' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'postgres',
'username' => 'postgres',
'password' => 'root',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),
'sqlsrv' => array(
'driver' => 'sqlsrv',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'prefix' => '',
),
),
Run Code Online (Sandbox Code Playgroud)
如果我删除MySQL路径,我会得到:
[InvalidArgumentException]
Database [mysql] not configured.
Run Code Online (Sandbox Code Playgroud)
php.ini
文件在Apache,WAMP(来自php文件夹)和PostgreSQL中进行了检查.这extension_dir
是正确的 - >extension_dir = "c:/wamp/bin/php/php5.5.12/ext/"
该extension=pdo_pgsql.dll
和extension=pgsql.dll
是注释.
完成PATH
"系统变量"中的技巧并重新启动.没有机会.
感谢你目前的帮助.
这些是我的司机php_pdo_driver.h
和php_pdo.h
来自C:\Program Files (x86)\PostgreSQL\EnterpriseDB-ApachePHP\php\SDK\include\ext\pdo
来自phpinfo的信息:
PHP版本5.5.12
编译器MSVC11(Visual C++ 2012)配置命令cscript/nologo configure.js"--enable-snapshot-build"" - disable-isapi"" - enable-debug-pack"" - without-mssql"" - without-pdo-mssql"" - without-pi3web"" - with-pdo-oci = C:\ php-sdk\oracle\x64\instantclient10\sdk,shared""--with-oci8 = C:\ php -sdk\oracle\x64\instantclient10\sdk,shared""--with-oci8-11g = C:\ php-sdk\oracle\x64\instantclient11\sdk,shared"" - enable-object-out-dir = ../obj/"" - enable-com-dotnet = shared"" - with-mcrypt = static"" - disable-static-analyze"" - with-pgo"
小智 72
务必配置'default'
密钥app/config/database.php
对于postgres,这将是 'default' => 'postgres',
如果收到[PDOException] could not find driver
错误,请检查是否安装了正确的PHP扩展.您需要pdo_pgsql.so
并pgsql.so
安装并启用.有关如何执行此操作的说明因操作系统而异.
对于Windows,pgsql
扩展应该使用官方PHP发行版预先下载.只需编辑php.ini
并取消注释行extension=pdo_pgsql.so
和extension=pgsql.so
此外,请php.ini
确保extension_dir
设置为正确的目录.它应该是PHP安装目录中名为extensions
或ext
类似的文件夹.
最后,复制libpq.dll
从C:\wamp\bin\php\php5.*\
进入C:\wamp\bin\apache*\bin
并通过WampServer界面重新启动所有服务.
如果仍然出现异常,则可能需要将postgres \bin
目录添加到PATH
:
PATH
条目.这应该有希望解决任何问题.有关更多信息,请参阅
Nas*_*jim 46
对于PDOException: could not find driver
for MySQL
,如果是Debian
基于OS,
sudo apt-get -y install php5-mysql
Run Code Online (Sandbox Code Playgroud)
Свя*_*нко 25
对于Ubuntu中的PHP 7,您还可以:
sudo apt-get install php7.0-pgsql
Run Code Online (Sandbox Code Playgroud)
所以,现在你不能取消注释 php.ini
UPD:
我有同样的错误,所以问题不在驱动程序中.我改变了我database.ini
,但每次看到错误.我改变了数据库配置.env
并且错误消失了.
我意识到这是一个老问题,但我在谷歌搜索中发现它,所以我会继续回答,以防万一其他人遇到这个问题.我在Mac上遇到了同样的问题,但是使用HomeBrew解决了这个问题.安装完成后,您可以运行以下命令:
brew install php56-pdo-pgsql
Run Code Online (Sandbox Code Playgroud)
并使用任何版本的PHP替换56而不使用小数点.
小智 5
我遇到过同样的问题.这对我有用.
有2个php.ini文件:
注意:这是使用我的PHP和Apache版本,改为你的版本.
位于这两个文件夹中的php.ini文件是您需要更新的,扩展名:
这些是取消注释所需的内容(删除;符号).
重新启动Wamp和命令提示符.
希望它对你有用:).
归档时间: |
|
查看次数: |
222027 次 |
最近记录: |