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

主要内容:使用Zend Framework访问数据库,本文把整个过程一步一步描述出来,已让初学者更加明白,更容易上手。

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->_config->db->adapter;
    $dbparams = $this->_config->db->config->toArray();
    $db = Zend_Db::factory($adapter, $dbparams);
    $db->setFetchMode(Zend_Db::FETCH_OBJ);
    $db->query("SET NAMES 'utf8'");
    $db->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->view->places = $placesDao->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) {?> <tr><td> 
          php echo $place->id;?> 
           td><td> 
            php echo $place->name;?> 
             td> 
              tr>  
               php }?>  
                tbody>  
                 table>

在浏览器中输入http://zftest.localhost/zfstepbystep/public/index.php

效果如下:

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、付费专栏及课程。

余额充值