极致模型函数
可以直接实例化模型,输出对应的数据,有一些数据输出需要写SQL或者说其他讨巧的方式输出。
M 实例化模型函数
M(table_name,prefix)
table_name: 表名称
prefix: 是否需要表前缀,默认1需要,0不需要,不需要的时候一般调用第三方数据v2.5.4+新增
模型的如何操作都要先使用这个函数进行实例化!
getCount 查询条数
getCount(conditions)
conditions:sql的字符串或者数组
计算基础会员组里面的会员人数
{php echo M('member')->getCount(['gid'=>1]);/}
{php echo M('member')->getCount('gid=1');/}
计算会员发布文章数
{php echo M('article')->getCount(['member_id'=>1]);/}
{php echo M('article')->getCount('member_id=1');/}
计算带有极致
字符的标题文章数
{php echo M('article')->getCount("title like '%极致%' ");/}
goInc 递增
goInc($conditions,$field,$vp=1)
conditions: 查询条件,数组或者字符串 field: 递增字段,必须是int或者decimal类型,否则出错!
vp: 递增数值,默认1
访问详情页面,文章点击量递增100
{php M('article')->goInc(['id'=>$jz['id']],'hits',100); /}
会员ID=1的用户,积分增加5
{php M('member')->goInc(['id'=>1],'jifen',5); /}
goDec 递减
goDec($conditions,$field,$vp=1)
conditions: 查询条件,数组或者字符串 field: 递减字段,必须是int或者decimal类型,否则出错!
vp: 递减数值,默认1
同上,不再举例
add 新增一条数据
add($insert)
insert:数组
新增一条文章数据
{php
$insert = ['title'=>'测试','addtime'=>time(),'body'=>'这个是测试内容数据'];
$insert_id = M('article')->add($insert);
/}
注意:前台不允许操作
level
和level_group
两个表
delete 删除一条数据
delete($conditions)
conditions: 查询条件,数组或者字符串
删除一条文章数据
{php
M('article')->delete(['id'=>1]);
/}
注意:前台不允许操作
level
和level_group
两个表
update 更新数据
update($conditions,$row)
conditions: 查询条件,数组或者字符串
row: 更新的数据,数组类型
将文章id=1的数据中的标题改为极致CMS标题示例
{php M('article')->update(['id'=>1],['title'=>'极致CMS标题示例']); /}
注意:前台不允许操作
level
和level_group
两个表
updateMuti 批量更新数据
updateMuti($conditions,$row)
conditions: 查询条件,数组
row: 更新的数据,数组类型
conditions和row两个数组的个数必须匹配,否则出错!
批量修改同个模型多条不同的数据
ID:1 修改标题
ID:2 修改点击量
ID:3 修改发布时间为当前时间
{php
M('article')->updateMuti(
[
['id'=>1],
'id=2',
'id=3',
],
[
'title'=>'极致CMS标题示例',
['hits'=>100],
'addtime'=>time()
]);
/}
findAll 批量查询数据
findAll($conditions,$order,$fields,$limit)
conditions:sql的字符串或者数组
order: 排序,默认null,支持组合排序,如:id desc,addtime desc
fields: 查询字段,默认null,可指定查询几个字段:id,title,keywords,body,addtime
limit: 查询条数,默认null,查询全部。
查询内容表热门的10条数据,并输出
{php
$lists = M('article')->findAll(['isshow'=>1],'hits desc',null,10);
/}
{foreach $lists as $v}
ID:{$v['id']}
标题:{$v['title']}
链接:{fun gourl($v)}//链接需要使用链接创建方法获取url,可以从内置函数这个章节找到方法
{/foreach}
find 查询单条数据
find($where=null,$order=null,$fields=null)
conditions:sql的字符串或者数组
order: 排序,默认null,支持组合排序,如:id desc,addtime desc
fields: 查询字段,默认null,可指定查询几个字段:id,title,keywords,body,addtime
查询ID=1的会员信息
{php
$m = M('member')->find(['id'=>1]);
/}
会员ID:{$m['id']}
会员昵称:{$m['username']}
会员积分:{$m['jifen']}
findPage 分页查询,返回数据列表和总条数
findPage($conditions,$order,$fields,$limit)
conditions:sql的字符串或者数组
order: 排序,默认null,支持组合排序,如:id desc,addtime desc
fields: 查询字段,默认null,可指定查询几个字段:id,title,keywords,body,addtime
limit: 查询条数,默认null,查询全部。 查询内容表10条数据,并获取总数据,进行分页处理
{php
//前台$frpage表示获取page参数的分页,如果是后台需要自己写$frpage = abs(intval($_GET['page'] ?? 1));
$start_1 = ($frpage - 1) * 10;
$limit = $start_1.',10';
$res = M('article')->findPage('isshow=1','id desc',null,$limit);
$sum = $res['sum'];//总条数
$lists = $res['lists'];//第一页数据
$allpage = ceil($sum/10);//总页数
/}
{foreach $lists as $v}
<p>{$v['id']}. {$v['title']}</p>
{/foreach}
{for $i=1;$i<=$allpage;$i++}
<a href="?page={$i}">第{$i}页</a>
{/for}
getField 单独查询某个字段值
getField($conditions,$field)
conditions:sql的字符串或者数组
field: 表字段,仅支持一个字段!
查询ID=1的会员钱包
{php
echo M('member')->getField(['id'=>1],'money');
/}
runSql 执行SQL,返回0
runSql($sql)
sql: sql字符串
新增一个字段
{php
$sql="alter table jz_article add column test varchar(255) default null comment '测试';";
M()->runSql($sql);
/}
注意此处的
M()
是实例化的基础模型
findSql SQL查询数据,返回数组或者false
findSql($sql)
sql: sql字符串,需要带上表名称 查询文章ID=1的内容
{php
$lists = M()->findSql("select * from jz_article where id=1 and isshow=1");
/}