MYSQL_ATTR_INIT_COMMAND错误

时间:2015-07-27 13:59:18

标签: php zend-framework pdo

我是Zend Framework的新手,我正在学习如何按照framework.zend网页中的步骤创建应用程序。

我的global.php页面有问题。

我的global.php是:

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

我想知道PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"指令的用途,因为如果我在localhost:8080上运行应用程序会给我一个错误。

这是错误:Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in C:\DevBox\zfproject\config\autoload\global.php

我可以删除该行吗?如果我无法删除它,我该如何解决问题?

我在Windows上,如果删除该行,一切正常,但我不认为这是正确的解决方案。

1 个答案:

答案 0 :(得分:0)

是的,您可以删除该行。

实际上,它只是某种福音或口头禅,每个PHP用户都会在不知道其含义的情况下背诵。它旨在设置默认字符集,该字符集已在DSN中设置(尽管自PHP 5.3.6起有效)

尽管如此,您还可以使用反斜杠来填充类名来解决问题,从而可以在任何名称空间中访问PDO类。