禅道开源项目管理 并没有试着去实现ORM或者ActiveRecord这样的概念。因为我们相信,框架要留给开发人员足够的自由发挥的空间,而不是所有的都要包办。所以框架里面提供了一个简单方便的数据库访问对象类:dao,让我们来看具体的写法。 更多开源详情:http://www.zentao.net/?u=lixiao&f=3600gz
一、查询语句:
$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() 条件语句: $this->dao->select('*')->from('user')->where('id')->gt(10)->beginIF($class == 'online')->andWhere('status')->eq('online')->fi()->fetchAll();
二、插入语句:
$user->account = 'wwccss';$user->password = '123456'; $this->dao->insert('user')->data($user)->exec();return $this->dao->lastInsertID(); 或者: $this->dao->insert('user') ->set('account')->eq($account) ->set('password')->eq($password) ->exec();
三、更新语句:
$this->dao->update('user')->data($user)->where('id')->eq($userid)->limit(1); 或者:
$this->dao->update('user') ->set('account')->eq($account) ->set('password')->eq($password) ->exec()
四、REPLACE语句
$this->dao->replace('user')->data($user)->exec();
五、删除语句:
$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(); // 魔术方法,按照account进行查询。$this->dao->select('*')->from('user')->fetchAll('account'); // 返回的结果中,以account为key。$this->dao->select('account, realname')->from('user')->fetchPairs(); // 返回account=>realname的键值对。$this->dao->select('class, account, realname')->from('user')->fetchGroup('class'); // 按照所属的class进行分组。 更加具体的例子,大家可以参考zentaopms中的代码。
|