当前位置: 首页 > 面试题库 >

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

贡斌
2023-03-14
问题内容

我正在尝试通过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“


问题答案:

确保在中配置'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. 重新启动所有打开的命令提示符,或者确定要重新启动计算机。


 类似资料:
  • 问题内容: 我在使用Laravel 5时遇到问题。当我运行“ php aritsan migration”时,出现此错误 我可以运行该应用程序,但是当需要数据库连接时,出现此错误 如何解决? 问题答案: 您应该在服务器上安装PDO。编辑您的php.ini(查看您的“已加载的配置文件”行,以找到php.ini文件路径)。查找并取消注释以下行(删除字符): 然后,重新启动Apache服务器。有关更多信

  • 问题内容: 我刚刚用Apache,MySQL和PHP安装了Debian Lenny,并且收到了PDOException 。 这是它所指的特定代码行: ,,,和是我所定义的常量。它在生产服务器(以及我以前的Ubuntu Server设置)上运行良好。 这与我的PHP安装有关吗? 搜索互联网没有帮助,我得到的只是专家交流和示例,但没有解决方案。 问题答案: 您需要有一个名为pdo_mysql的模块。在

  • 问题内容: 我已经在Linux系统上安装了Lampp,并且在尝试使用symfony2命令创建架构时正在学习symfony2。 我收到以下错误消息: 我也在php.ini文件中取消注释此行 我试图查看并用Google搜索我的问题,但无法解决我的问题。当我运行命令时,我得到以下结果: 有什么办法可以消除此问题? 问题答案: 希望您正在本地主机中运行项目。在项目文件夹app / config中,一个名为

  • 《2013年水晶报告》。使用Informix JDBC驱动器ifxjdbc.jar。报告之前正在工作 情况: > crconfig.xml已编辑,因此类路径中包含以下内容: C:\Program Files(x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java/lib/ifxjdbc.jar null 获取JDBC驱

  • 问题内容: 这是错误: 怎么了 问题答案: 您需要将驱动程序加载到某个地方。 您将在程序的类路径中需要postgresql驱动程序.jar文件。

  • 我为java应用程序的报告安装了crystal reports XI。当我试图通过JDBC(JNDI)创建一个新的mysql连接时,我得到一个错误“未能打开连接。详细信息:未找到JDBC驱动程序”。所以我按照互联网上的教程,编辑crconfig.xml来对我的mysql驱动程序进行路径设置。我将它放在其他jar文件所在的同一目录下,但仍然得到相同的错误消息。我也把它放在我的环境变量,但仍然没有运气