【问题标题】:Zend Framework 2 phpcloud databaseZend Framework 2 phpcloud 数据库
【发布时间】:2013-08-24 14:38:44
【问题描述】:

我正在学习 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 没有加载。换句话说,视图被正确路由。似乎数据库没有返回任何结果。我已将所有内容复制并粘贴到正确的文件中,并对其进行了三次检查。我使用 Zend Server 和 MySql 在本地完成了本教程,它运行良好。只是 PHPCloud 没有发出任何错误,似乎没有从其数据库中返回任何记录,无论我是否故意引入了错误的凭据。

提前感谢您的帮助。

【问题讨论】:

    标签: php mysql zend-framework2


    【解决方案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',
         ),
    );   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      相关资源
      最近更新 更多