我是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上,如果删除该行,一切正常,但我不认为这是正确的解决方案。
答案 0 :(得分:0)
是的,您可以删除该行。
实际上,它只是某种福音或口头禅,每个PHP用户都会在不知道其含义的情况下背诵。它旨在设置默认字符集,该字符集已在DSN中设置(尽管自PHP 5.3.6起有效)
尽管如此,您还可以使用反斜杠来填充类名来解决问题,从而可以在任何名称空间中访问PDO类。