Zend Framework 2 phpcloud数据库

时间:2013-08-24 14:38:45

标签: php mysql zend-framework2

我正在使用Zend Framework 2 Skeleton教程,但已选择在my.phpcloud.com的容器中使用mysql数据库。

在global.php文件中,我有:

return array(
'db' => array(
    'driver'         => 'Pdo',
    'dsn'            => 'mysql:dbname=mycontainer;host=mycontainer-db.my.phpcloud.com',
    'driver_options' => array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
    ),
),
'service_manager' => array(
    'factories' => array(
        'Zend\Db\Adapter\Adapter'
                => 'Zend\Db\Adapter\AdapterServiceFactory',
    ),
),
);

在我的local.php文件中,我有:

return array(
'db' => array(
    'username' => 'mycontainer',
    'password' => 'mypassword',
),

);

即使我故意输入不正确的凭据,我也不会收到任何错误。我的视图正确加载...除了没有记录。我已经验证该表存在且命名正确。我已经确认该表包含记录。

如果我返回Controller来调用视图的数组,而不是填充的ViewModel,它会按预期加载视图,但是因为AlbumTable没有加载。换句话说,View正在正确路由。看起来好像数据库没有返回任何结果。我已经将所有内容复制并粘贴到正确的文件中并对其进行三重检查。我使用Zend Server和MySql在本地完成了本教程,它运行得很好。它只是PHPCloud,它没有发出任何错误,似乎没有从其数据库中返回任何记录,无论我是否故意引入不良凭据。

感谢您提前获得任何帮助。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

$dsn = sprintf(
    'mysql:dbname=%s;host=%s',
    get_cfg_var('zend_developer_cloud.db.name'),
    get_cfg_var('zend_developer_cloud.db.host')
);

return array(
    'db' => array(
        'driver'     => 'pdo',
        'dsn'       => $dsn,
        'username'  => 'mycontainer',
        'password'  => 'mypassword',
     ),
);   
相关问题