#测试使用ZEND框架读取MYSQL某表内的所有数据
#首先我们创建个数据库,名为qingxinzui
#然后创建user表,表内有3个字段
CREATE TABLE user(id int primary key auto_increment,name varchar(64)not null,password varchar(64)not null);
#创建自增ID(建议使用),名字,密码
然后我们配置下配置文件的MYSQL
/configs/application.ini
[mysql]
db.adapter=PDO_MYSQL
db.params.host=localhost
db.params.username=root
db.params.password=
db.params.dbname=qingxinzui
#[mysql] mysql节点开始
#db.adapter=选择PDO类型的MYSQL
#db.params.host 数据库地址
#db.params.username 用户名
#db.params.password 密码(为空即不填写)
#db.params.dbname 数据库名称
我们默认使用index控制器来操作.
既然是使用框架,那么模板也就必须有那么一个对index控制器进行数据动作的文件
models目录下创建个IndexModel.php文件
写入以下代码:
class user extends Zend_Db_Table
{
#类的名字对应user数据库的user表名
#可以使用对该表的所有操作(由于继承了Zend_DB_Table)
protected $_name=’user’; //关联的表名
//protected $_primary=’id’;
//主键为id,如果创建表的时候有设置id为主键,可以不写
}
require_once APPLICATION_PATH.’/models/IndexModel.php’;
#在index控制器内别忘记了包含模板文件
同时:
init()函数是调用该控制器时自动执行,为了以后我们能更方便的管理
我们可以新增一个控制器,命名为:DbmysqlController.php(记得在controllers目录下创建)
class DbmysqlController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
$url=constant(“APPLICATION_PATH”).DIRECTORY_SEPARATOR.’configs’.DIRECTORY_SEPARATOR.’application.ini’;
$dbconfig=new Zend_Config_Ini($url,”mysql”); //读取mysql开始的节点
$db=Zend_Db::factory($dbconfig->db);//
$db->query(‘SET NAMES UTF8’);
Zend_Db_Table::setDefaultAdapter($db);
}
}
#然后在index控制器里面包含进来,这样我们其他需要用到数据连接的控制器
#直接把DbmysqlController.php包含进来就可以了.
require_once ‘DbmysqlController.php’;
#同时修改下Index控制器继承的类为 DbmysqlController
class IndexController extends DbmysqlController
{
#DbmysqlController已经继承Zend_Controller_Action控制器的方法
public function indexAction()
{
$userModel=new user(); //模板文件里已经定义要操作的表名了.
$rs=$userModel->fetchall()->toArray(); //返回数组
/*
在这里可能会很奇怪,系统怎么会知道我们要操作哪个数据库呢
其实在DbmysqlController里,读取了配置文件,已经知道哪一个
然后我们在模板里设置了一个protected $_name=’user’; //关联的表名
所以直接提取的是当前表的所有数据
ZEND框架已经封装好了这些属性.
*/
$this->view->rs=$rs;
#给当前对象的view视图生成一个属性rs,参数为数据库返回的数组
$this->render(‘index’);
}
}
#到此为止,已经获取了数据名,表名及把每行记录返回到数组$rs里了.
#我们在index.phtml视图文件中显示出来.
<?php
foreach ($this->rs as $user)
{
echo $user[‘id’].$user[‘user’].$user[‘password’].”</br>”;
}
?>
#rs数组属性的变量名取为user
输出数组属性的id,user,password数值.
到此,一个简单的使用ZEND框架获取数据库某表内的数据就简单完成了.
#注layouts里面为布局文件,别把layout.phtml文件删除,否则将不能正常显示.
关于作者