说道这个知识点,想一下都有点心酸,我可是把这个知识点的视屏看看整整六遍才算把基本的流程以及要点搞明白,看着是用框架方便了许多,但如果是搞不明白,他就会把你搞死,不诉苦了,还是先说一下具体的操作流程吧。
首先,既然要去查询数据库,而且是用框架的方式,就必须改掉那种面向过程,单层结构的方式,应该充分利用mvc的思想,就是说,在模型,视图,还有控制器,让他们分工明确,,首先要建立一个数据库的表类,那必然就应该放在modle里面了,注意的就是既然要使用框架里面的方法,那么就必须要继承该方法类,该方法类就是Zend_Db_Table,关于他的用法具体查手册,这样的话,你需要做的就是在这个子类的里面去定义数据库表名和主键名称,别的地方不要去管。
然后在程序配置文件application.ini配置好数据库的相关配置,主要有:数据库的接口类型,主机名(不是虚拟主机),数据库用户名,数据库密码,数据库名,这几项数据,要注意的就是在打开这个配置文件之前,9行之后的配置为默认的配置,去掉就行,不然会有影响,如下面我的添加:
[mysql]
db.adapter=PDO_MYSQL
db.params.host=localhost
db.params.username=root
db.params.password=toor
db.params.dbname=empmanage
如果做完了上面的步骤,不要以为就已经结束了,还没有配置适配器呢,就是view文件夹俩面的Bootstrap.php文件,加上下面的一段语句:
function __construct($app){
parent::__construct($app);
$url=constant("APPLICATION_PATH") . DIRECTORY_SEPARATOR . ‘configs‘ . DIRECTORY_SEPARATOR . ‘application.ini‘;
$dbconfig = new Zend_Config_Ini($url,"mysql");
$db=Zend_Db::factory($dbconfig->db);
$db->query(‘SET NAMES UTF8‘);
Zend_Db_Table::setDefaultAdapter($db);
}
这就是一个初始化的操作,如果说这个函数下面还有东西,就删掉,不要问为什么。
做到这里,英爱就差最后一步了,这只是测试那么就要显示数据库的信息,在indexAction方法里面加入下面的语句(名称的含义要一定理解):
$messageModel=new Message();
$res=$messageModel->fetchAll()->toArray();
echo "<pre>";
print_r($res);
echo "</pre>";
第一句是建立一个Message类的对象,这是后后面会有很多的东西要做的。。。。。
然后你就利用fetchAll()方法就行查询,返回结果集。
最后格式化输出就OK了。
关于输出到哪里,当然要是在view那里了,不然就体现不出分层的思想来了。
在view的index.phtml文件:
<?php foreach($this->res as $message) { ?>
<?=$message[‘id‘]?>----<?=$message[‘name‘]?>
<?php }?>
如果按照以上的步骤进行,有相当大的几率会出现问题,为了查找问题更加方便,建议添加错误日志。