Laravel 5与Postgres SQL

Moy*_*ari 16 php postgresql pdo laravel laravel-5

我正在使用postgres作为数据库在Laravel 5上工作.我配置了postgres 9.4和pgAdmin III,这些都正常工作.当我尝试运行迁移时,它给了我错误:

[PDOException]
找不到驱动程序

这是我的database.php

'default' => 'pgsql',

'pgsql' => [            'driver'   => 'pgsql',          
                        'host'     => '127.0.0.1',          
                        'database' => 'fms',            
                        'username' => 'postgres',           
                        'password' => 'root',           
                        'charset'  => 'utf8',           
                        'prefix'   => '',           
                        'schema'   => 'public',         ],
Run Code Online (Sandbox Code Playgroud)

最初我虽然,这是由于Windows 7上的postgres配置,但我尝试使用纯PHP,它的工作完美

<?php
   $host        = "host=127.0.0.1";
   $port        = "port=5432";
   $dbname      = "dbname=fms";

   $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";
   }
?>
Run Code Online (Sandbox Code Playgroud)

我也在wamp中启用了php_pgsqlphp_pdo_sql.我不知道如何在laravel 5上解决这个问题.

Sul*_*een 32

正如你所说,你已经选择默认数据库作为Postgres SQL

'default' => 'pgsql',
Run Code Online (Sandbox Code Playgroud)

您必须在php配置设置中取消注释pdo和postgres共享对象 (php.ini)

即,您需要在php.ini中取消注释以下行

extension=pdo_pgsql.so
extension=pgsql.so
Run Code Online (Sandbox Code Playgroud)

注意 :

不要忘记apache在执行此更改后停止并启动您(或者php-fpm如果使用该更改).


anc*_*hor 7

Laravel-WAMP-PostgreSql驱动程序遇到相同的问题,未发现异常。我什至像您一样成功建立了与Postgre的直接连接,但是使用“ php artisan migration”命令并不成功。

经过长期研究,我发现有多个php.ini文件,其中“ extension = php_pdo_pgsql.dll”和“ extension = php_pgsql.dll”被注释掉了。

解决方案是(当然)不要使用以下文件中的扩展名:

  • 〜/ wamp / bin / php / php5.5。* / php.ini
  • 〜/ wamp / bin / php / php5.5。* / phpForApache
  • 〜/ wamp / bin / php / php5.5。* / php.ini.install
  • 〜/ wamp / bin / php / php5.5。* / php.ini-development
  • 〜/ wamp / bin / php / php5.5。* / php.ini-production和
  • 〜/ wamp / bin / apache / apache2.4.9 / php.ini

**您可以省去“ php.ini-development”和“ php.ini-production”(不需要取消输入这些文件)。