所谓CURD。即对数据库操作的四个基本操作(CURD):C:create(创建)、U:update(更新)、R:read(读取)和D:detele(删除)。
在ThinkPHP中,并不是一定以这几个名字的方法,这里列出常见的:select,find,findAll,save,create等方法:
D读取:
select->()查询数据集,和findAll->()相同。例如:
$User->where(‘status=1′)->order(‘create_time’)->limit(10)->select();
注意:在连贯操作中除了select方法必须放到最后一个外,其他的连贯操作的方法调用顺序没有先后,例如,下面的代码和上面的等效:
$User->order(‘create_time’)->where(‘status=1′)->limit(10)->select();
find->()方法,和以上两种方法类似。区别在只返回一条数据。可以和getField->()获取一条记录的某个字段值一起用。
select和findall效果一样,返回的是一个二维数组。如
array(1) {
[0] => array(8)
{ ["rank_id"] => string(3) “151″
["rank_name"] => string(7) “测试9″
["rank_memo"] => string(3) “123″
["uid"] => string(5) “59471″
["rank_kw"] => string(6) “重要”
["rank_uptime"] => string(10) “1280202914″
["isverify"] => string(1) “0″
["ishot"] => string(1) “0″
}
}
find的效果如下,返回的是一个一维数组:
array(8) {
["rank_id"] => string(3) “151″
["rank_name"] => string(7) “测试9″
["rank_memo"] => string(3) “123″
["uid"] => string(5) “59471″
["rank_kw"] => string(6) “重要”
["rank_uptime"] => string(10) “
1280202914″ ["isverify"] => string(1) “0″
["ishot"] => string(1) “0″
}
Where方法:用于查询或者更新条件的定义
Table方法:定义要操作的数据表名称
$Model->Table(‘think_user user’)->where(‘status>1′)->select();
field方法:定义要查询的字段
field方法的参数支持字符串和数组,例如,
$Model->field(‘id,nickname as name’)->select();
$Model->field(array(‘id’,’nickname’=>’name’))->select();
如果不使用field方法指定字段的话,默认和使用field(‘*’)等效。
U更新,C创建:
data,add,save方法:数据对象赋值,添加,保存。例如:
$data['name'] = ‘ThinkPHP’;
$data['email'] = ‘ThinkPHP@gmail.com’;
$Model->data($data)->add();//新增,相当于insert,连贯写法
$Model->add($data); //新增,相当于insert,非连贯写法
$Model->data($data)->where(‘id=3′)->save(); //修改,相当于update
需要注意的是,save方法的话,如果数据没有变化,那么默认返回的操作是FALSE。但是这个save执行是OK的,这个需要注意。
create->()自动从POST的字段组成形如$data的数据
$User=D(“User”);
$User->create(); //默认通过表单提交的数据进行创建
$User->add(); //新增
setInc和setDec方法。对于统计字段(通常指的是数字类型)的更新:
$Model->setInc(‘score’,’id=5′,3); // 用户的积分加3
$Model->setInc(‘score’,’id=5′); // 用户的积分加1
$Model->setDec(‘score’,’id=5′,5); // 用户的积分减5
$Model->setDec(‘score’,’id=5′); // 用户的积分减1
D删除:
delete->()删除数据
$User->where(‘status=0′)->order(‘create_time’)->limit(’5′)->delete();
Model的其他常见方法:
order方法:结果排序 例如:
order(‘id desc’)
排序方法支持对多个字段的排序
order(‘status desc,id asc’)
order方法的参数支持字符串和数组,数组的用法如下:
order(array(‘status’=>’desc’,’id’))
limit方法:结果限制
limit(’1,10′)
如果使用limit(’10′) 等效于 limit(’0,10′)
page方法:查询分页,Page方法的用法和limit方法类似,格式为:
Page(‘page[,listRows]‘)
Page表示当前的页数,listRows表示每页显示的记录数。例如表示每页显示10条记录的情况下面,获取第2页的数据:
Page(’2,10′)
listRow如果不写的话,会读取limit(‘length’) 的值,例如表示每页显示25条记录的情况下面,获取第3页的数据:
limit(25)->page(3);
如果limit也没有设置的话,则默认为每页显示20条记录。
Join方法:查询Join支持.Join方法的参数支持字符串和数组,并且join方法是连贯操作中唯一可以多次调用的方法。例如:
$Model->join(‘ work ON artist.id = work.artist_id’)->join(‘card ON artist.card_id = card.id’)->select();
默认采用LEFT JOIN 方式,如果需要用其他的JOIN方式,可以改成
$Model->join(‘RIGHT JOIN work ON artist.id = work.artist_id’)->select();
Distinct方法:查询的Disiinct支持。查询数据的时候进行唯一过滤
$Model->Distinct(true)->select();
Relation方法:关联查询支持
$Model->Relation(true)->select();
条件查询
$map->put(‘name’,'php’); //name=’php’
(‘name’,array(‘like’,'think’)); //name like ‘…’
(‘id’,array(‘in’,array(1,2,4)));
(‘id’,array(’10′,’3′,’or’)); //id>=10 or <=3
thinkphp多表查询语句
1、table()函数
thinkphp中提供了一个table()函数,具体用法参考以下语句:
$list=$Demo->table(‘think_blog blog,think_type type’)->where(‘blog.typeid=type.id’)->field(‘blog.id as id,blog.title,blog.content,type.typename as type’)->order(‘blog.id desc’ )->limit(5)->select();
echo $Demo->getLastSql(); //打印一下SQL语句,查看一下
2、join()函数
看一下代码:
$Demo = M(‘artist’);
$Demo->join(‘RIGHT JOIN think_work ON think_artist.id = think_work.artist_id’ );
//可以使用INNER JOIN 或者 LEFT JOIN 这里一定要注意表名的前缀!
echo $Demo->getLastSql(); //打印一下SQL语句,查看一下
分享到:
相关推荐
这个"thinkphp CURD完整案例"提供了全面的示例,涵盖了从数据库设计到实现CRUD操作的全过程。 首先,我们来看"study.sql"文件,这通常是一个SQL脚本,用于创建名为"study"的数据库以及其中的表结构。在导入这个脚本...
ThinkPHP的ORM(对象关系映射)系统在模型类中实现了各种数据库操作方法,其中 CURD 操作是基础且核心的部分,代表了创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)。而其中的where方法是查询...
这篇关于"thinkPHP之CURD开发简单源码"的内容,旨在帮助新手快速理解和掌握如何在ThinkPHP框架下进行基本的数据操作。 首先,创建(Create)数据通常涉及到向数据库中插入新的记录。在ThinkPHP中,你可以通过Model...
在ThinkPHP框架中,CURD(Create, Read, Update, Delete)操作是基本的数据操作方法,用于处理数据库中的增、删、改、查任务。其中,`table`方法是模型类的一个重要连贯操作,它允许开发者明确指定要操作的数据表,...
在使用ThinkPHP框架进行数据库操作时,CURD(Create、Read、Update、Delete)方法是开发者最常用的一组功能,它们极大地简化了数据库交互。本文将深入解析ThinkPHP CURD方法中的`order`方法,帮助你更好地理解和运用...
ThinkPHP CURD方法的limit方法也是模型类的连贯操作方法之一,主要用于指定查询和操作的数量,特别在分页查询的时候使用较多。并且ThinkPHP的limit方法可以兼容所有的数据库驱动类。 其具体用法如下: 1.限制结果...
data方法是ThinkPHP CURD操作中的一个重要组成部分,它主要用来设置模型对象的数据属性,并可以与其他CURD操作方法配合使用,实现对数据的读取或写入。 在ThinkPHP中,data方法通常用于设置数据对象的值,无论是在...
ThinkPHP框架提供了一种简便的方式来处理这种需求,那就是它的CURD方法中的`page`方法。这篇文章将深入探讨`page`方法的使用及其优势。 首先,CURD(Create、Update、Read、Delete)是数据库操作的基本动作,...
在ThinkPHP框架中,CURD(Create, Read, Update, Delete)操作是数据库操作的核心部分,而field方法则是这些操作中不可或缺的一环,尤其在处理数据查询与更新时。field方法主要用于指定模型操作时需要返回或处理的...
在Thinkphp中实现多条件查询时,可以使用框架提供的查询构建器(Query Builder),但是当涉及到MongoDB的复合查询时,比如需要使用AND和OR逻辑运算符进行多条件筛选,官方文档中提供的方法可能不足以满足需求。...
在本文中,我们将深入探讨ThinkPHP框架中的CURD(创建、读取、更新、删除)操作和查询方式。这些基本操作构成了任何Web应用程序的核心,尤其是处理数据库交互时。ThinkPHP作为一个简洁而强大的PHP开发框架,提供了...
本文实例讲述了thinkPHP框架实现多表查询的方法。分享给大家供大家参考,具体如下: 我们可以将两个表连起来一起查询数据,我现在有两张表,一个是feedback表和member表,如图: 总目录: 上代码: $where = ...
ThinkPHP5是一个广泛使用的PHP开发框架,它提供了多种数据库操作的方法,特别是在数据查询方面提供了非常丰富的API,方便开发者进行联合查询、多条件查询以及聚合查询等操作。 ### 联合(关联)查询 在ThinkPHP5中,...