`

thinkphp 数据库 增删改查

 
阅读更多

ThinkPHP提供了灵活和方便的数据操作方法,不仅实现了对数据库操作的四大基本操作(CURD):创建、读取、更新和删除的实现,还内置了很多实用的数据操作方法,提供了ActiveRecords模式的最佳体验。

新建记录

PHP代码

1. $User->find(2);

2. $User->delete();//删除查找到的记录

3. $User->delete('5,6');//删除主键为56的数据

4. $User->deleteAll();//删除查询出来的所有数据

PHP代码

1. //实例化一个User模型对象

2.

3. $User=newUserModel();

4. //然后给数据对象赋值

5. $User->name='ThinkPHP';

6. $User->email='ThinkPHP@gmail.com';

7. //然后就可以保存新建的User对象了

8. $User->add();

9. //如果需要锁实例化模型对象的时候传入数据,可以使用

10. $data['name']='ThinkPHP';

11. $data['email']='ThinkPHP@gmail.com';

12. $User=newUserModel($data);

13. $User->add();

14. //或者直接在add方法传入要新建的数据

15. $data['name']='ThinkPHP';

16. $data['email']='ThinkPHP@gmail.com';

17. $User=newUserModel();

18. $User->add($data);

19.

20.


一般情况下,应用中的数据对象不太可能通过手动赋值的方式写入,而是有个数据对象的创建过程。ThinkPHP提供了一个create方法来创建数据对象,然后进行其它的新增或者编辑操作。

PHP代码

1. $User=D("User");

2. $User->create();//创建User数据对象,默认通过表单提交的数据进行创建

3. $User->add();//新增表单提交的数据

Create方法支持从其它方式创建数据对象,例如,从其它的数据对象,或者数组等

PHP代码

1. $data['name']='ThinkPHP';

2. $data['email']='ThinkPHP@gmail.com';

3. $User->create($data);

4. //User数据对象创建新的Member数据对象

5. $Member=D("Member");

6. $Member->create($User);

支持新增多条记录

PHP代码

1. $User=newUserModel();

2. $data[0]['name']='ThinkPHP';

3. $data[0]['email']='ThinkPHP@gmail.com';

4. $data[1]['name']='流年';

5. $data[1]['email']='liu21st@gmail.com';

6. $User->addAll($data);

MySql数据库下面,会自动使用一条SQL语句实现多数据的插入。

查询记录
读取数据库的记录我觉得是数据库操作中的最有意思的一件事情了,写过文本数据库的人都知道,保存和删除数据不难(无非是规范和效率问题),难在可以通过各种方式来查找需要的数据。ThinkPHP通过各种努力,让数据库的查询操作变得轻而易举,也让ThinkPHP变得富有内涵。
ThinkPHP
有一个非常明确的约定,就是单个数据查询和多个数据查询的方法是分开的,或者你会认为有时候自己也不知道要查询的数据是单个还是多个,但是有一点是明确的,你需要的是返回一个数据还是希望返回的是一个数据集。因为对两种类型的返回数据的操作方式是截然不同的,无论何种方式的返回,我们都可以直接在模型对象里面操作,当然也一样可以作为数据传递给你需要的变量。
先举个最简单的例子,假如我们要查询主键为8的某个用户记录,我们可以使用下面的一些方法:

PHP代码

1. $User->find(8);

这个作为查询语言来说是最为直观的,如果查询成功,查询的结果直接保存在当前的数据对象中,在进行下一次查询操作之前,我们都可以提取,例如获取查询的结果数据:

PHP代码

1. $name=$User->name;

2. $email=$User->email;

遍历查询到的数据对象属性

PHP代码

1. foreach($Useras$key=>$val){

2. echo($key.':'.$val);

3. }

// 或者进行相关的数据更改和保存操作
也可以用变量保存下来以便随时使用。

PHP代码

1. $user=$User->find(8);

对于上面的查询条件,我们还可以使用getById来完成相同的查询

PHP代码

1. $User->getById(8);

需要注意的是,对于find方法来说,即使查询结果有多条记录,也只会返回符合条件的第一条记录,如果要返回符合要求的所有记录,请使用findAll方法。

PHP代码

1. //查询主键为138的记录集

2. $User->findAll('1,3,8');

3. //遍历数据列表

4. foreach($Useras$vo){

5. dump($vo->name);

6. }

更多的查询操作请参考后面章节的内容。

更新记录
了解了查询记录后,更新操作就显得非常简单了。

//还可以使用下面的方式更新

PHP代码

1. $User->find(1);//查找主键为1的数据

2. $User->name='TOPThink';//修改数据对象

3. $User->save();//保存当前数据对象

4. $User->score='(score+1)';//对用户的积分加1

5. $User->save();

如果不是使用数据对象的方式来保存,可以传入要保存的数据和条件

PHP代码

1. $data['id']=1;

2. $data['name']='TopThink';

3. $User->save($data);

除了save方法外,你还可以使用setField方法来更新特定字段的值,例如:

PHP代码

1. $User->setField('name','TopThink','id=1');

同样可以支持对字段的操作

PHP代码

1. $User->setField('score','(score+1)','id=1');

2. //或者改成下面的

3. $User->setInc('score','id=1');

删除记录

如果你的主键是自动增长类型,不需要传入主键的值就可以新建数据,并且如果插入数据成功的话,Add方法的返回值就是最新插入的主键值,可以直接获取。

分享到:
评论

相关推荐

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

    本文实例讲述了thinkPHP数据库增删改查操作方法。分享给大家供大家参考,具体如下: thinkphp对数据库增删改查进行了封装操作,使得使用更加方便,但是不一定灵活。 可以用封装的用,需要写sql,可以执行sql。 1....

    thinkphp5完整版增删改查案例

    thinkphp5.0增删改查案例,本案例夹带数据库,存放于压缩包根目录,可以解压后在mysql工具中直接运行sql文件即可使用,简单使用的增删改查,希望能帮到大家,欢迎下载

    thinkphp增删改查

    本文件包含了thinkphp框架,bootstrap框架,mysql数据库文件,实现增删改查

    buildView:ThinkPhP 基于layui构建视图增删改查

    buildView##ThinkPhP 适用于ThinkAdmin后台框架,layui构建视图增删改查。使用下面的命令来快速创建一个对应模型和控制器php think make:admin UserController --model=User表格基本使用use buildView\Grid;use app\...

    thinkphp3.2.3版本的数据库增删改查实现代码

    下面小编就为大家带来一篇thinkphp3.2.3版本的数据库增删改查实现代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    thinkPHP框架通过Redis实现增删改查操作的方法详解

    主要介绍了thinkPHP框架通过Redis实现增删改查操作的方法,结合实例形式较为详细的分析了thinkPHP框架针对redis数据库的配置、连接及CURD操作相关实现技巧,需要的朋友可以参考下

    ThinkPHP5.1框架数据库链接和增删改查操作示例

    主要介绍了ThinkPHP5.1框架数据库链接和增删改查操作,结合实例形式分析了thinkPHP5.1框架数据库连接的常用方式与针对数据库增删改查操作相关实现技巧,需要的朋友可以参考下

    ThinkPHP对数据库增删改查

    thinkPHP增加功能实现(add()函数) public function insert_test(){ //实例化数据表 //数据表为Message $Message = M('Message'); //组装插入的数据 //声明data变量为空数组 $data = array(); //给data数组...

    tp5(thinkPHP5)框架数据库Db增删改查常见操作总结

    主要介绍了tp5(thinkPHP5)框架数据库Db增删改查常见操作,结合实例形式总结分析了thinkPHP5框架数据库的增删改查常见操作技巧与相关注意事项,需要的朋友可以参考下

    ThinkPHP写的增删改的完整功能例子

    thinkPHP框架写的增,删,修功能,优化ThinkPHP自带的提示功能,很好的thinkphp入门学习的实例,亲测通过。 数据库请自己建,数据库名称:user 字段: id, username,password,address,age,createtime,createip。

    ThinkPHP框架实现数据增删改

    本文实例讲述了thinkPHP数据库增删改查操作方法。分享给大家供大家参考。希望对大家学习使用thinkPHP有所帮助

    tp5框架的增删改查操作示例

    主要介绍了tp5框架的增删改查操作,结合实例形式分析了thinkPHP5框架数据库连接及增删改查相关操作的控制器与视图使用技巧,需要的朋友可以参考下

    ThinkPHP框架分布式数据库连接方法详解

    当然了,我们在这里不是去将如何使用模型去对数据库进行增删改查。我们是对其底层的连接代码做一个分析,可以帮助大家更好的理解thinkphp对数据库的操作。方便我们以后的使用。 一、单一数据库的连接 在使用的时候,...

    Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】

    主要介绍了Thinkphp5.0框架的Db操作,结合实例形式分析了thinkPHP5使用Db库实现数据库的连接、增删改查及链式操作等相关使用技巧,需要的朋友可以参考下

    thinkphp的简单应用

    用thinkphp实现对数据库的增删改查操作,俩表之间嵌套查询操作

Global site tag (gtag.js) - Google Analytics