Zend Studio 6 + Zend Framework进阶教程之三

来源:互联网 发布:淘宝商家登录页面 编辑:程序博客网 时间:2024/05/21 04:20
本节主要内容:使用Zend Framework访问数据库,本文把整个过程一步一步描述出来,已让初学者更加明白,更容易上手。
下一节内容:完整的CRUD示例。
 
1 设置数据库
1.1 创建数据库zfaction
在MySQL中创建数据库zfaction: create database zfaction;
1.2 配置数据库连接配置
<工程目录>/config/config.ini,内容如下
[general] db.adapter=PDO_MYSQL db.config.host=localhost db.config.username=root db.config.password=root db.config.dbname=zfaction
各个参数不言自明,这里不一一细说。
2 连接数据库
2.1 在Initializer类(Initializer.php)中初始化数据库连接
public function initDb() { // 配置数据库连接 $adapter = $this-&gt;_config-&gt;db-&gt;adapter; $dbparams = $this-&gt;_config-&gt;db-&gt;config-&gt;toArray(); $db = Zend_Db::factory($adapter, $dbparams); $db-&gt;setFetchMode(Zend_Db::FETCH_OBJ); $db-&gt;query("SET NAMES 'utf8'"); $db-&gt;query("SET CHARACTER SET 'utf8'"); Zend_Db_Table::setDefaultAdapter($db); }
3 创建实体模型
3.1 建立表
在MySQL的中zfaction数据库中建立Places表并插入数据
DROP TABLE IF EXISTS `places`; CREATE TABLE `places` ( `id` int(11) NOT NULL auto_increment, `date_created` datetime NOT NULL, `date_updated` datetime NOT NULL, `created_by` int(11) default '-1', `name` varchar(100) NOT NULL, `address1` varchar(100) default NULL, `address2` varchar(100) default NULL, `town` varchar(75) default NULL, `county` varchar(75) default NULL, `postcode` varchar(30) default NULL, `country` varchar(75) default NULL, `information` mediumtext, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; INSERT INTO `places` (`id`,`date_created`,`date_updated`,`created_by`,`name`,`address1`,`address2`,`town`,`county`,`postcode`,`country`,`information`) VALUES ('1','2007-02-14 00:00:00','2007-02-14 00:00:00','1','London Zoo','Regent/'s Park',NULL,'London','','NW1 4RY',NULL,NULL); INSERT INTO `places` (`id`,`date_created`,`date_updated`,`created_by`,`name`,`address1`,`address2`,`town`,`county`,`postcode`,`country`,`information`) VALUES ('2','2007-02-14 00:00:00','2007-02-14 00:00:00','1','Alton Towers','Regent/'s Park',NULL,'Alton','Staffordshire','ST10 4DB',NULL,NULL); INSERT INTO `places` (`id`,`date_created`,`date_updated`,`created_by`,`name`,`address1`,`address2`,`town`,`county`,`postcode`,`country`,`information`) VALUES ('3','2007-02-14 00:00:00','2007-02-14 00:00:00','2','Coughton Court','',NULL,'Alcester','Warwickshire','B49 5JA',NULL,NULL);
3.2 建立实体模型
在Zend Studio中使用New/Zend Framework Item建立Zend Table,使用Places.php作为php文件名,这个文件很简单,_name属性初始化值为数据库对应的表名。
3.3 在Index控制器(IndexController.php)中访问数据表
// step3 访问数据库 $placesDao = new Places(); $this-&gt;view-&gt;places = $placesDao-&gt;fetchAll();
3.4 在视图(index.phtml)中显示数据
<h3>step 3: 通过mvc模式访问数据库</h3> <table> <thead> <tr><td>id</td><td>name</td></tr> </thead> <tbody> <?php foreach ($this->places as $place) {?&gt; <tr><td><?php echo $place->id;?&gt;</td><td><?php echo $place->name;?&gt;</td></tr> <?php }?> </tbody> </table>
在浏览器中输入http://zftest.localhost/zfstepbystep/public/index.php
效果如下:
image
 
 
最后请注意,如果出现“'No default module defined for this application”提示信息,则请检查数据库连接参数。
image
原创粉丝点击