DooPHP 数据库常用操作 DooSqlMagic类

官方demo给出的用法:

Doo::db()->find(‘post’);

我一般这么用:

Doo::loadModel(‘Users’);
$users=new users;
$users=$this->db()->find($users);

或者:

Doo::loadModel(‘Users’);
$users=new users;
$users->find();

find()方法有个可选参数$opt,update,insert,delete方法也有,$opt是个关联数组,具体支持的索引参见API文档。
update方法的$opt参数支持的索引文档没有列出,我这里补充下: 支持where,limit
下面我给些操作实例
count方法

$this->load()->model(‘Posts ‘);
$posts=new posts;
$posts->count(array(‘where’=>’post_type=”post”‘));

update方法

Doo::loadModel(‘Posts’);
$post=new posts;
$post->title=’new_title’;
$int_affectedrows=$this->db()->update($post,array(‘where’=>”ID=$id”));

insert方法

Doo::loadModel(‘Posts’);
$post=new posts;
$post->title=’title’;
$post->content=’content’;
//……..
$int_id=$this->db()->insert($post);

delete方法

Doo::loadModel(‘Posts’);
$posts= new posts;
//$ids=”(‘1’,‘2’)”;
$posts->delete(array(‘where’=>”ID IN ($ids)”));

relate方法
index.php

Doo::db()->setMap($dbmap);

这里取消注释
db.conf.php 里添加数据模型的关系

$dbmap[‘TermTaxonomy’][‘belongs_to’][‘Terms’] = array(‘foreign_key’=>’term_id’);
$dbmap[‘Terms’][‘has_one’][‘TermTaxonomy’] = array(‘foreign_key’=>’term_id’);

然后是controller里的语句,注意relate会判断后加载模型不需要手动loadModel

$opt=array(
‘where’=>’taxonomy=”category”‘,
‘asArray’=>true,
‘filters’=>array(
array(‘model’=>’TermTaxonomy’,
‘where’=>’count!=0’)
)
);
$categories=$this->db()->relate(‘TermTaxonomy’,’Terms’,$opt);