无法使用XAMPP,Laravel,PDO连接到Postgres数据库

时间:2016-09-08 17:57:26

标签: php postgresql pdo

我见过几篇与此相关的帖子,但到目前为止还没有任何工作。

我目前的设置是XAMPP,Laravel 5和Postgres。这是我的welcome.blade.php文件:

@extends('layout')

@section('content')
<?php

    $results = DB::select('select * from logs', array(1));
    echo $results;
   //  $host        = "host=127.0.0.1";
   //  $port        = "port=5432";
   //  $dbname      = "dbname=test";
   //
   // $db = pg_connect( "$host $port $dbname user=postgres password=root"  );
   // if(!$db){
   //    echo "Error : Unable to open database\n";
   // } else {
   //    echo "Opened database successfully\n";
   // }
?>
@stop

当我访问http://localhost:8000/时,收到错误:SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.

我还在php.ini文件中取消注释了pgsql扩展。我认为也许postgres是禁用的,所以我取消注释了该部分并注释掉了PDO部分。每当我访问http://localhost/resources/views/welcome.blade.php时,我都会

@extends('layout') @section('content') Opened database successfully @stop

这很好。我知道postgres正在运作。

这是我的.env文件:

DB_CONNECTION=pgsql
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=test
DB_USERNAME=postgres
DB_PASSWORD=root

在我的database.php文件中,我有这个:

'default' => env('DB_CONNECTION', 'pgsql'),

'pgsql' => [
'driver' => 'pgsql',
// 'host' => env('DB_HOST', 'localhost'),
// 'port' => env('DB_PORT', '5432'),
// 'database' => env('DB_DATABASE', 'test'),
// 'username' => env('DB_USERNAME', 'postgres'),
// 'password' => env('DB_PASSWORD', 'root'),
'host' => 'localhost',
'port' => '5432',
'database' => 'test',
'username' => 'postgres',
'password' => 'root',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'data',
'sslmode' => 'prefer',
],

我不确定我是否需要env()。我尝试了两种方式,都没有工作。

我在这里遗漏了什么吗?帮助将不胜感激。

0 个答案:

没有答案