【发布时间】:2015-05-07 13:54:19
【问题描述】:
我是刚开始学习 Zend Framework 2 的新手。当我按照教程http://framework.zend.com/manual/2.3/en/user-guide/database-and-models.html 进行操作时,我遇到了查找数据库的问题。
我发现它可以连接到localhost数据库,但找不到任何数据库。
连接错误:SQLSTATE[HY000] [1049] 未知数据库 'db_vote'
它只能找到数据库“mysql”。但是如果我在“mysql”中创建一个新表,就找不到新表。
另一件奇怪的事情是我在 phpmyadmin 中更改了我的 root 密码,但是在 zf2 中,如果我更改为新密码,它说访问被拒绝,但它可以使用旧密码。
好像 zend 正在连接到另一个“本地主机”?奇怪的想法... 任何人都可以帮助我吗?提前致谢。
Module.php 中的代码:
public function getServiceConfig(){
return array(
'factories' => array(
'Album\Model\AlbumTable' => function($sm){
$tableGateway = $sm->get('AlbumTableGateway');
$table = new AlbumTable($tableGateway);
return $table;
},
'AlbumTableGateway' => function($sm){
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Album());
return new TableGateway('album_zend', $dbAdapter, null, $resultSetPrototype);
},
),
);
}
global.php:
return array(
'db' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=db_vote; host=localhost',
'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' => 'root',
'password' => 'xxxxxxx',
),
);
【问题讨论】:
-
那么您的设置配置文件在哪里?你的代码在哪里?
-
您是否创建了一个名为
db_vote的数据库?你应该可以用 phpmyadmin 做到这一点 -
嗨,蒂姆,是的,我创建了一个名为 db_vote 的数据库。我什至尝试了本地主机中的每个数据库,它都显示未知数据库。只能访问mysql
-
嗨,Alex,我附上了相关代码
-
那台机器上只有一个数据库服务器吗? “好像 zend 正在连接到另一个“本地主机”?” - 你这是什么意思?
标签: php mysql database zend-framework