【问题标题】:Uncaught PDOException while using Doctrine 2 CLI in ZF2在 ZF2 中使用 Doctrine 2 CLI 时未捕获的 PDOException
【发布时间】:2016-02-20 01:21:05
【问题描述】:

我在尝试使用原则 CLI 时遇到未捕获的 PDO 异常。我正在关注marco's tutorial

我的配置是: ZF 2.5.1 与 PHP 版本 5.5.21

Zend 服务器 8.0.2

遇到异常:

致命错误:在 /usr/local/zend/apache2/htdocs/website-/vendor/doctrine/dbal/lib/ 中未捕获异常 'PDOException' 并带有消息 'SQLSTATE[HY000] [2002] No such file or directory'教义/DBAL/Driver/PDOConnection.php:43 堆栈跟踪: 0. /usr/local/zend/apache2/htdocs/website-/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(43): PDO->__construct('mysql:host=loca.. .', '根', '', 数组) 1. /usr/local/zend/apache2/htdocs/website-/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php(45): Doctrine\DBAL\Driver\PDOConnection->__construct( 'mysql:host=loca...', 'root', '', 数组) 2. /usr/local/zend/apache2/htdocs/website-/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(360): Doctrine\DBAL\Driver\PDOMySql\Driver->connect(Array, '根','',数组) 3. /usr/local/zend/apache2/htdocs/website-/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(429): Doctrine\DBAL\Connection->connect() 4. /usr/local/zend/apache2/htdocs/website-/vendor/doctrine/dba 在 /usr/local/zend/apache2/htdocs/website-/vendor/zendframework/zend-servicemanager/src/ServiceManager.php 上第 946 行


谁能帮帮我或给我任何建议吗?

附加信息:

  1. 用于访问 Doctrine CLI 的命令:

    ./vendor/bin/doctrine-module orm:validate-schema

  2. /vendor/bin/ 的内容:

ABHI 员工 57B 6 月 6 日 00:47 classmap_generator.php -> ../zendframework/zendframework/bin/classmap_generator.php ABHI 工作人员 28B Jun 16 19:46 学说 -> ../doctrine/orm/bin/doctrine ABHI 工作人员 34B 6 月 16 日 19:46 学说-dbal -> ../doctrine/dbal/bin/doctrine-dbal ABHI 员工 47B 6 月 16 日 19:46 教义模块 -> ../doctrine/doctrine-module/bin/doctrine-module ABHI 员工 32B 6 月 16 日 19:46 根员工 26B Jun 16 20:26 phpunit -> ../phpunit/phpunit/phpunit ABHI 员工 58B Jun 6 00:47 pluginmap_generator.php -> ../zendframework/zendframework/bin/pluginmap_generator.php ABHI 员工 60B Jun 6 00:47 templatemap_generator.php -> ../zendframework/zendframework/bin/templatemap_generator.php ABHI 员工 30B 6 月 16 日 19:52 zf.php -> ../zendframework/zftool/zf.php

  1. 来自学说模块文件的片段:

    /* @var $cli \Symfony\Component\Console\Application */
    $cli = $application->getServiceManager()->get('doctrine.cli');
    exit($cli->run());
    
  2. 在 PDOConnection.php 文件中的以下函数中抛出错误:

    public function __construct($dsn, $user = null, $password = null, array $options = null)
    {
        try {
            parent::__construct($dsn, $user, $password, $options);
            $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('Doctrine\DBAL\Driver\PDOStatement', array()));
            $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (\PDOException $exception) {
            throw new PDOException($exception);
        }
    }
    

【问题讨论】:

标签: php doctrine-orm zend-framework2 zend-server


【解决方案1】:

我知道自从提出这个问题以来已经有一段时间了,但是由于没有提供任何解决方案,我想我还是会分享一个解决方案。

错误提示您的应用程序无法连接到数据库,找不到准确的数据库连接。

如果您在本地实例以外的某个平台上托管和测试应用程序,那么您可能使用GIT 推送,默认情况下,zf2 在config/autoload 文件夹中有一个.gitignore 文件,忽略@ 987654324@ 以及该文件夹中的所有其他文件,扩展名为 .local.php。 由于您使用的是DoctrineORM,虽然不是必需的,但我猜您的数据库连接中的config/autoload 文件夹中可能有一个doctrine.local.php 文件。

修复:

  1. 您可以改用 ftp 来上传数据库连接文件 local.php 或任何其他承载您的数据库连接的文件。

  2. 您可以从可能包含您的数据库连接详细信息的.gitignore 文件中删除local.php 文件。

  3. 你可以使用 global.php

希望这对以后可能遇到类似问题的人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多