您的位置:BugFree > 易软动态 > ZenTaoPHP框架提供的DAO功能

ZenTaoPHP框架提供的DAO功能

添加日期:2009-12-01 21:07 作者:王春生 来源:本站原创 阅读 3511

 最一开始设计zentaophp框架的时候,并没有考虑提供数据库访问抽象的功能。当时在做zentaopms最开始版本的时候,都是手工写的sql。不过手写sql还是比较繁琐的一件事情,尤其是对我这样完美性格的人来讲:)。

于是一个多月之前,开始动手写这个数据库访问的抽象层。最开始给这个抽象层定义为orm,后来写着写着觉得不对,自己写的这个东西仅仅是数据库访问的抽象,不是orm,所以后来将其改为DAO,data access object。

一、查询语句:

$this->dao->select('*')->from('user')->where('account')->eq('wwccss')->fetch();
$this->dao->select('*')->from('user')->where('id')->gt(10)->andWhere('age')->lt(20)->orderBy('id desc')->limit('1,10')->fetchAll()

二、插入语句:

$user['account'] = 'wwccss';
$user['password'] = '123456';

$this->dao->insert('user')->data($user)->exec();
return $this->dao->lastInsertID();

三、更新语句:

$this->dao->update('user')->data($user)->where('id')->eq($userid)->limit(1);

四、删除语句:

$this->dao->delete()->from('user')->where('id')->eq($userid);

五、左连接

$this->dao->select('t1.*, t2.*')->from('user')->alias('t1')->leftJoin('userGroup')->alias('t2')->on('t1.account = t2.account')->fetchAll();

六、其他便利的方法:

$this->dao->findByAccount($account)->from('user')->fetch();
$this->dao->select('*')->from('user')->fetchAll('account');     // 返回的结果中,以account为key。
$this->dao->select('account, realname')->from('user')->fetchPairs();     // 返回account=>realname的键值对。

更加具体的例子,大家可以参考zentaopms中的代码。

责任编辑:wwccss 于 2009-12-01 21:07
« ZenTaoPMS暂时不提供新的发行包,请大家从源代码中check 易软动态 ZenTaoPHP框架的分页解决方案 »
评论:
#1 wwccss at 2010-03-10 11:17
在和framework同级的lib目录下面。
#2 pestd at 2010-03-10 10:14
dao类在哪个文件里面啊?
#3 wwccss at 2010-01-01 17:58
也支持的。呵呵。不过建议还是使用eq,这样DAO会自动处理转义。:)
#4 朝闻道 at 2010-01-01 15:28
where('id')->eq($userid); 这样的写法太麻烦了,
直接 where(“id=$userid”);这样好些。
#5 wwccss at 2009-12-02 20:18
好处在于
1. 单双引号不用再写的那么麻烦。
2. 比手写会更加安全一些。因为DAO会自动对value进行转义。
3. 通过DAO,后面做读写分离,或者cache都可以比较容易的实现。
#6 xlight at 2009-12-02 17:54
呃,都写成这样了啊?那个和直接写SQL还有什么区别呢?
称呼: 邮箱:
评论:
用户中心
称呼:
密码
栏目导航