php - Zend Framework 2 phpcloud 数据库

标签 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',
),

);

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

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

感谢您提前提供的任何帮助。

最佳答案

尝试这样的事情:

$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',
     ),
);   

关于php - Zend Framework 2 phpcloud 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18419707/

相关文章:

zend-framework2 - ZF2 : How to set form elements to be ignored?

php - 如何将附加变量传递给匿名 TableGateway 方法参数?

PHP session 变量 - 传递页面

php - 动态数组再次覆盖

mysql - 无法连接到 'localhost' 上的 MySQL 服务器 (10055)

mysql - 将表值作为 MySQL 中的列

mysql - 在 Zend 框架 2 的子查询中使用 limit 和 offset

php - 'exec() : Unable to fork' on Ubuntu 14. 04.3 LTS

php - 类方法签名不匹配?

php - CDbCommand 无法执行 SQLSTATE[23000]