暂无 |

连贯操作辅助方法

辅助方法即相对于上文的主方法而言,在连贯操作中辅助主方法实现各种数据库操作条件,如上面例子中的 where、limit 等方法。

where方法

where 方法用于设定操作条件,详细见:《ThinkPHP where方法》。

order方法

where 方法用于将查询结果排序,支持单个或多个字段排序,参数支持字符串和数组:

// 单个字段
$allUser = $Dao->order('uid DESC')->select();
// 多个字段
$allUser = $Dao->order('regdate ASC,score DESC')->select();
// 参数为数组
$allUser = $Dao->order(array('regdate'=>'ASC','score DESC'))->select();

limit方法

limit 方法用于限制操作结果,对于不同的数据库,ThinkPHP 将操作结果限制统一为 limit 方法,语法如下:

limit('length')

如果使用 limit('10') 等效于 limit('0,10')。

field方法

定义要查询的字段,参数支持字符串和数组:

$allUser = $Dao->field('username,email')->select();
// 使用数组参数
$allUser = $Dao->field(array('nickname'=>'name','email'))->select();

如果不使用 field 方法指定查询字段,则等效为 field('*')。

data方法

用于新增或者保存数据之前的数据对象赋值:

$data['email'] = 'Jack@163.com';
$Dao->data($data)->where('id=3')->save();
// 如果不定义data方法赋值,则可以在主方法中传入参数或者使用create数据对象:
$Dao->where('id=3')->save($data);

data 方法的参数支持对象和数组,如果是对象会自动转换成数组。

group方法

GROUP BY 语法支持,group 方法的参数只支持字符串:

$allUser = $Dao->group('regon')->select();

having方法

HAVING 语法支持,having 方法的参数只支持字符串:

$allUser = $Dao->having('score > 100')->select();

distinct方法

DISTINCT 语法支持,查询数据的时候进行唯一过滤:

$allUser = $Dao->distinct('username')->select();

join方法

JOIN 语法支持,具体参见《ThinkPHP JOIN查询》。

table方法

table 方法可以动态改变当前操作的数据表名称,需要写数据表的全名(包含前缀),可以使用别名:

$allUser = $Dao->table('my_user')->select();

table 方法参数除字符串外还支持数组:

$allUser = $Dao->table(array('my_user'=>'user','my_group'=>'group'))->select();

使用数组方式可以避免因为表名和关键字冲突而出错的情况。如果不定义table方法,默认会自动获取当前模型对应或者定义的数据表。

page方法

page方法用于查询分页,具体参见《ThinkPHP 分页》。

lock方法

lock 方法是用于数据库的锁机制:
$allUser = $Dao->lock(true)->select();

该例子会在生成的 SQL 语句最后加上 FOR UPDATE 。

与主方法不同的是,上述这些辅助方法可以根据实际情况自由组合,且顺序没有前后要求。

连贯操作中各方法的参数仅在当次操作有效,完成后会自动清空连贯操作的所有传值,不会带入以后的操作中。

0

java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论