Reputation: 141
I am taking the Zend Framework 2 Skeleton tutorial but have elected to use the mysql database in my container at my.phpcloud.com.
In the global.php file I have:
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',
),
),
);
In my local.php file I have:
return array(
'db' => array(
'username' => 'mycontainer',
'password' => 'mypassword',
),
);
I receive no errors, even if I purposely put in incorrect credentials. My view loads properly...except that there are no records. I've verified that the table exists and it is named correctly. I've verified that the table contains records.
If I return the Controller to call an array for the view, rather than a populated ViewModel, it loads the view with errors, as expected, since the AlbumTable does not load. In other words, the View is being routed correctly. It just seems like the database is returning no results. I've copied and pasted everything to the correct files and triple checked it all. I completed this tutorial locally with Zend Server and MySql and it runs perfectly. It's just the PHPCloud, which issues no errors, that seems to be returning no records from its database, whether I purposely introduce bad credentials or not.
Thanks for any assistance in advance.
Upvotes: 0
Views: 149
Reputation: 11
Try something like this:
$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',
),
);
Upvotes: 1