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

本节主要内容:使用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 >
效果如下:
image
 
 
最后请注意,如果出现“'No default module defined for this application”提示信息,则请检查数据库连接参数。
image
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值