1.1、通过Db类操作
//静态方式 //执行连贯操作方法 Db::table('ay_user')->select() //执行原生操作方法 Db::all('select * from ay_user') //对象方式 $db = new Db(); //执行连贯操作方法 $db->table('ay_user')->select() //执行原生操作方法 $db->all('select * from ay_user')
可用于模板中加载数据,例如:
{php} //获取友情链接 Db::table('ay_link')->select() {/php}
table($table) | 接收完整表名,可以是字符串、数组,'ay_user',array('ay_user'=>'a','ay_role') |
name($table) | 接收表名,可以是字符串、数组,'user',array('user'=>'a','role') |
alias($alias) | 设置表别名,只适合单表查询时,传递字符串,'a' |
distinct($flag) | 设置返回非重复数据,可选传递字布尔值,默认true |
field($field) | 设置返回数据字段,可以为字符串、数组,'username,passwd',array('username'=>'uname','passwd'=>'pwd') |
where($where,$inConnect, $outConnect) | 设置条件,可多次调用,可以为字符串、数组,多次调用本方法时与前面条件使用AND连接,$where参数数组内部的条件默认使用AND连接,'id=1',array('id'=>1,'age>3') |
exists($subsql) | 设置EXISTS查询,传递子查询或闭包子查询,支持用闭包函数连贯查询构建语句 |
notExists($subSql) | 设置NOT EXISTS查询,传递子查询或闭包子查询,支持用闭包函数连贯查询构建语句 |
in($field, $range) | 传递字段名和范围数据,可多次调用,范围参数接受字符串、数组或子查询,'username','1,2,3'; 'username',array(1,2,3); |
notIn($field, $range) | 传递字段名和范围数据,可多次调用,范围参数接受字符串、数组或子查询,'username','1,2,3'; 'username',array(1,2,3); |
order($order) | 设置排序,可以为字符串、数组,如"id DESC,name",array('id'=>'DESC','name') |
limit($limit) | 设置限制,可接受:单个参数数,如 1,单个参数字符串,如'1,10',两个参数数字,如:1,10 |
group($group) | 设置分组,可以传递字符串、数字数组,如"name,sex",array('name','sex') |
having($having, $inConnect, $outConnect) | 分组查询时条件语句,可多次调用,可以为字符串、数组,多次调用本方法时与前面条件使用AND连接,$where参数数组内部的条件默认使用AND连接 |
join($join) | 设置多表连接查询,可多次调用,可以为一维或二维数组,array('table','a.id=b.id','INNER'),第一个参数为数据表,第二个参数为ON条件,第三个参数为类型 |
like($field, $keyword, $matchType) | 关键字条件匹配,$field支持数组或点分字符串传递多个字段,$matchType匹配模式,默认为all,可选left,right |
notLike($field, $keyword, $matchType) | 关键字条件不匹配,$field支持数组或点分字符串传递多个字段,$matchType匹配模式,默认为all,可选left,right |
union($subSql, $isAll) | 设置多表合并查询, 可多次调用,子查询可以使用数字数组传递多个,isAll决定是否UNION ALL |
page($doPage, $startPage, $pageSize) | 设置分页,参数一是否分页,参数二起始页,参数三分页大小 |
data($data) | 待插入或更新数据数组,分解insert、update函数,实现 table($table)->data($data)->insert(); |
from($subSql) | 接受子查询或闭包子查询from(function ($query) {return $query->table('ay_user')->select(false);}) |
relation($field, $array) | 生成待插入或更新的关联数据数组,如 一个用户对应多个角色表数据插入,relation($ucode,$rcodes) |
showSql() | 设置显示输出SQL语句到页面,可选传递布尔值 |
showRs() | 设置直接输出结果到页面,可选传递布尔值 |
select($type) | 获取多条数据,可选$type传递1,2,3返回不同格式数据数组,可传递一个闭包函数 |
find($type) | 获取一条数据,可选$type传递1,2,3返回不同格式数据数组,可传递一个闭包函数 |
column($fields, $key) | 返回指定字段数据数组,可选$key, 传递字段名字符串或数字数组,单个字段,返回一维数组,如果多个字段,返回二维数组数 |
value($field) | 返回指定字段的一条数据的值 |
max($field) | 返回指定列最大值 |
min($field) | 返回指定列最小值 |
avg($field) | 返回指定列平均值 |
sum($field) | 返回指定列合计值 |
insert($data, $batch) | 插入数据,可选传递$data一维或二维数据数组,未传递时使用data()数据,可选$batch是否批量一次性插入,默认true |
insertGetId($data, $batch) | 插入数据返回最后一个ID,可选传递$data一维或二维数据数组,未传递时使用data()数据,可选$batch是否批量一次性插入,默认true |
update($data) | 更新数据,可选传递$data一维数组或字符串,如:"username='xsh'",未传递时使用data()数据 |
setField($field, $value) | 更新指定字段 |
setInc($field, $value) | 字段自增,默认value为1 |
setDec($field, $value) | 字段自减,默认value为1 |
delete($data, $key) | 删除数据,可选data使用字符串或数组设置主键值,可选$key设置主键 |