2013-08-24 93 views
0

這是我在Zend框架2骷髏教程,但已當選爲my.phpcloud.com使用MySQL數據庫在我的容器。Zend框架2 phpcloud數據庫

在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', 
), 

);

我收到任何錯誤,即使我故意把不正確的憑據。我的視圖正確加載...除了沒有記錄。我已經驗證該表存在並且它的名稱正確。我已驗證該表格包含記錄。

如果我回到控制器呼籲視圖一個數組,而不是填充視圖模型,它裝載有錯誤的觀點,如預期,因爲AlbumTable不加載。換句話說,視圖正確路由。看起來好像數據庫沒有返回結果。我已將所有內容複製並粘貼到正確的文件中,並將所有內容複製三次。我使用Zend Server和MySql在本地完成了本教程,並且它完美運行。這只是PHPCloud,它發出任何錯誤,這似乎是從它的數據庫沒有返回記錄,是否我故意引入壞的憑據或沒有。

感謝提前任何幫助。

回答

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