【问题标题】:PHP 5.4.9 Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'PHP 5.4.9 未定义的类常量 'MYSQL_ATTR_INIT_COMMAND'
【发布时间】:2013-12-12 19:40:41
【问题描述】:

我正在尝试按照this 教程配置原则,当我运行该命令时: ./vendor/bin/doctrine-module orm:validate-schema 我得到一个错误:

第 19 行 var/www/CommunicationApp/config/autoload/global.php 中未定义的类常量“MYSQL_ATTR_INIT_COMMAND”

这里是 global.php 文件:

<?php
/**
 * Global Configuration Override
 *
 * You can use this file for overriding configuration values from modules, etc.
 * You would place values in here that are agnostic to the environment and not
 * sensitive to security.
 *
 * @NOTE: In practice, this file will typically be INCLUDED in your source
 * control, so do not include passwords or other sensitive information in this
 * file.
 */

return array(
  'db' => array(
     'driver'  => 'Pdo',
     'dsn'   => 'mysql:dbname=zf2tutorial;host=localhost',
     'driver_options' => array(
         PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
     ),
 ),
 'service_manager' => array(
     'factories' => array(
         'Zend\Db\Adapter\Adapter'
                 => 'Zend\Db\Adapter\AdapterServiceFactory',
     ),
 ),
);

我已经取消了 /usr/local/zend/etc/php.ini 中的 extension=php_pdo_mysql.dll 的注释

【问题讨论】:

  • 尝试将其命名空间到“根”命名空间:\PDO::MYSQL_ATTR_INIT_COMMAND(PDO 之前的反斜杠)
  • 它不起作用,同样的错误

标签: php mysql zend-framework doctrine-orm zend-framework2


【解决方案1】:

确保您已安装 PHP MySQL 扩展。在 Ubuntu 上是:

sudo apt-get install php5-mysql

【讨论】:

  • 现在我收到这个错误:[Doctrine\Common\Persistence\Mapping\MappingException] 文件映射驱动程序必须有一个有效的目录路径,但是给定的路径 [/var/www/CommunicationApp/ module/CsnFileManager/config/../src/CsnFileManager/Entity] 好像不对!
【解决方案2】:

我在使用这条 PDO 行时遇到了同样的问题,然后首先,我安装了 Tim Fountain 发布的 php5-mysql 包。第二步是从线条中删除逃逸。

'driver_options' => array(
     PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
 ),

两件事之后,它成功了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 2011-01-26
    • 2016-10-06
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    相关资源
    最近更新 更多