手机版

thinkPHP数据库增删改查操作方法实例详解

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

本文实例讲述了thinkPHP数据库增删改查操作方法。分享给大家供大家参考,具体如下:

thinkphp对数据库增删改查进行了封装操作,使得使用更加方便,但是不一定灵活。

可以用封装的用,需要写sql,可以执行sql。

1.原始的

$ Model=new Model();//实例化一个模型对象没有对应任何数据表$ INSERT _ SQL=' INSERT INTO sh _ wxuser _ collection(user _ id,store_id,good_id,addtime) VALUES(').$user_id .',''.$store_id .''.$good_id .',''.$addtime .);$ Model-查询($ insert _ SQL);2.针对表实例化的,这里的表原名是sh_wxuser_collection。嘘是前缀。

$ model=M(' wxuser _ collection ');//自动省去sh $ INSERT _ SQL=' INSERT INTO _ _ TABLE _ _(用户id,存储id,good_id,addtime) VALUES(').$user_id .',''.$store_id .''.$good_id .',''.$addtime .);$ model-query($ insert _ SQL);另一种写法,_可以写成大写,它会自动转化成_

$ model=M(' wxuser collection ');//自动省去sh $ INSERT _ SQL=' INSERT INTO _ _ TABLE _ _(用户id,存储id,good_id,addtime) VALUES(').$user_id .',''.$store_id .''.$good_id .',''.$addtime .);$ model-query($ insert _ SQL);3.封装的增加语句

$ model=M(' wxuser collection ');$data=array('user_id'=$user_id,' store_id'=$store_id,' good_id'=$good_id,' add time '=$ add time);$ model-data($ data)-add();4.封装的修改编辑语句

$ model=M(' wxuser collection ');$data=array('user_id'=$user_id,' store_id'=$store_id,' good_id'=$good_id,' add time '=$ add time);$模型-数据($数据)-其中(' id=3 ')-save();确实挺方便的,但是方便之余,别忘了原始的sql,原汁原味的sql,才最有意思。

5.find()

$ model=M(' wxuser collection ');$ res1=$ model-find(1);$ res2=$ model-find(2);$res3=$model -其中(' good _ id=1105 AND store _ id=1 AND user _ id=20 ')-find();发现获取一条数据,查找(1)获取编号为一的数据,查找(2)获取编号为2的数据。最后一个是获取条件为在哪里的中的第一条数据。

5 .选择()

$ model=M(' wxuser collection ');$res=$model -其中(' good _ id=1105 AND store _ id=1 AND user _ id=20 ')-字段(' id,good _ id为好’)-选择();获取所有数据。这里的好处就是,不用考虑结构化查询语言语句的顺序了,随心所欲调用函数就可以了。

6 .删除()

$ model=M(' wxuser collection ');$res=$model -其中(' id=1 ')-delete();//成功返回一失败返回0根据条件进行删除操作

7.field()

$ model=M(' wxuser collection ');$res=$model - field('id,good_id为好’)-选择();$res=$model - field(数组(' id ',' good _ id '=' good ')-select();$res=$model - field('id ',true)-select();字符串,数组两种方式,第三个是表示获取处理编号之外的所有字段。

8 .订单()

$ model=M(' wxuser collection ');$ RES=$ model-order(' id desc ')-select();$ RES=$ model-order(' id ASC ')-select();$ RES=$ model-order(数组(' id '=' desc ')-select();$ res=$模型-订单(数组(“id”)-select();字符串,数组两种方式,默认asc。

9 .加入()

$模特加入('艺术家作品。id=work。artist _ id’)-加入('卡ON art。card _ id=card。id ')-select();$ Model-JOIN(' RIGHT JOIN工作在艺术家身上。id=work。artist _ id’)-select();$ Model-join(数组('在艺术家身上工作。id=work。艺术家_ id ','卡上艺术家。card _ id=card。id ')-select();默认采用左连接方式,如果需要用其他的加入方式,可以改成第二种,

如果加入方法的参数用数组的话,只能使用一次加入方法,并且不能和字符串方式混合使用。

10.setInc()

$ User=M(' User ');//实例化用户对象$用户-其中(' id=5')-setInc('score ',3);//用户的积分加3美元用户-其中(' id=5 ')-setInc(' score ');//用户的积分加1美元用户-其中(' id=5')-setDec('score ',5);//用户的积分减5美元用户-其中(' id=5 ')-SetDec(' score ');//用户的积分减111.getField()

获取某个字段值

$ User=M(' User ');//实例化User对象//获取ID为3的用户的昵称$昵称=$ User-其中(' ID=3')-getfield('昵称');返回的昵称是一个字符串结果。也就是说,即使有多个字段满足条件,也只会返回一个结果。

获取字段列

如果要返回满足要求的字段列(多个结果),可以使用:

$ User=M(' User ');//实例化User对象//获取状态为1 $昵称=$ User-其中('状态=1')-getfield('昵称',true)的用户的昵称列表;将True传递给第二个参数,返回的昵称是一个数组,其中包含满足条件的所有昵称的列表。

如果需要限制返回结果的数量,可以使用:

$昵称=$ User-where(' status=1 ')-getField('昵称',8);获取两个字段的列表

$ User=M(' User ');//实例化User对象//获取状态为1 $昵称=$ user-where('状态=1')-getfield ('id,昵称')的用户的昵称列表;如果将多个字段名传递给getField方法,默认情况下会返回一个关联数组,第一个字段的值作为索引(因此第一个字段应尽可能不重复)。

获取多个字段列表

$ result=$ User-where(' status=1 ')-getField(' id,帐户,昵称');如果传入两个以上的字段名,将返回一个二维数组(类似于select方法的返回值,只是索引是二维数组的键名和第一个字段的值)

综合用例

$ where=array(' a . store _ id '=$ this-store _ id,' a . user _ id '=$ this-user _ id);$ collects=$ this-collectModel-table(' sh _ wxuser _ collection a ')-field(array(' b . name ',' b.price ',' b.oprice ',' b.logoimg ',' a.goods_id'))-limit($start,$ offset)-order(' a . addtime desc ')-where($ where)-join(' sh _ goods b ON a . goods _ id=b . id ')-select();//获取当前页面的记录echo M()-getLastSql();//调试带有$ count=$ this-collectmodel-table(' sh _ wxuser _ collectiona ')-where($ where)-count()的sql语句;//获取记录总数。因为这里合并了两个表,所以用table方法重新定义表名,对应的条件和参数都要加前缀。a或b .

字段字段可以是字符串或数组。

字段(' b.name ',' b.price ',' b.oprice ',' b.logoimg ',' a . goods _ id ')//错误。我以前写过,问题很大。

使用这个框架,你不能灵活地编写sql。但是,对sql有深刻的理解也有利于框架的灵活使用。

用于调试sql语句的方法。

echo M()-getLastSql();非常方便。

更多对thinkPHP感兴趣的读者,请查看本网站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》、《smarty模板入门基础教程》、《PHP模板技术总结》。

希望本文对基于ThinkPHP框架的PHP编程有所帮助。

版权声明:thinkPHP数据库增删改查操作方法实例详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。