一尘不染

Laravel:错误[PDOException]:在PostgreSQL中找不到驱动程序

php

我正在尝试通过Laravel与PostgreSQL数据库进行连接,以进行php
artisan迁移,但由于它正在读取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'   => '',
    ),

),

如果删除MySQL路径,则会得到:

[InvalidArgumentException]
Database [mysql] not configured.

编辑: 尝试进行php
artisan迁移时,我得到一个’PDOException:找不到驱动器’。我正在使用WAMP,并且在Win8.1中。使用PostgreSQL作为数据库。


编辑:
已经尝试了一系列替代解决方案,但我仍然应该解决这个问题。该php.ini文件已在Apache,WAMP(来自php文件夹)和PostgreSQL中进行了检查。这extension_dir是正确的->extension_dir = "c:/wamp/bin/php/php5.5.12/ext/"

extension=pdo_pgsql.dllextension=pgsql.dll是注释。

完成PATH“系统变量”中的技巧,然后重新启动。没有机会。

感谢你目前的帮助。

这是我的司机php_pdo_driver.hphp_pdo.hC:\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”“-不使用pdo-mssql“” –without-pi3web“” –with-pdo-oci = C:\ php-sdk \
oracle \ x64 \ instantclient10 \ sdk,shared“” –with-oci8 = C:\ php -sdk \
oracle \ x64 \ instantclient10 \ sdk,共享“” –with-oci8-11g = C:\ php-sdk \
oracle \ x64 \ instantclient11 \ sdk,共享“” –enable-object-out-dir =
../obj/“” –enable-com-dotnet = shared“” –with-mcrypt = static“” –disable-
static-analyze“” –with-pgo“


阅读 319

收藏
2020-05-26

共1个答案

一尘不染

确保在中配置'default'密钥app/config/database.php

对于postgres,这将是 'default' => 'postgres',

如果收到[PDOException] could not find driver错误,请检查是否安装了正确的PHP扩展。你需要pdo_pgsql.sopgsql.so安装并启用。有关如何执行此操作的说明因操作系统而异。

对于Windows,pgsql扩展应随官方PHP发行版一起预下载。只需编辑您的内容,php.ini然后取消注释extension=pdo_pgsql.soextension=pgsql.so

同样,在中php.ini,确保extension_dir将其设置为正确的目录。它应该是PHP安装目录中一个名为extensionsext类似文件夹。

最后,复制libpq.dllC:\wamp\bin\php\php5.*\进入C:\wamp\bin\apache*\bin通过WampServer接口并重新启动所有服务。

如果仍然出现异常,则可能需要将postgres \bin目录添加到您的PATH

  1. 系统属性->高级选项卡->环境变量
  2. 在窗口下半部分的“系统变量”组中,滚动浏览并找到PATH条目。
  3. 选择它,然后单击编辑。
  4. 在现有条目的末尾,将完整路径放入您的postgres bin目录。bin文件夹应位于postgres安装目录的根目录中。
  5. 重新启动所有打开的命令提示符,或者确定要重新启动计算机。
2020-05-26