热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ThinkPHP之curd操作

php教程|php手册ThinkPHP,之,curd,操作,ThinkPHP,提供,了,灵活,和,方便,数据,操作,方法,不仅,实现,对,php教程-php手册ThinkPHP提供

php教程|php手册ThinkPHP 之 curd 操作
ThinkPHP,之,curd,操作,ThinkPHP,提供,了,灵活,和,方便,数据,操作,方法,不仅,实现,对,
php教程-php手册
ThinkPHP提供了灵活和方便的数据操作方法,不仅实现了对数据库操作的四大基本操作(CURD):创建、读取、更新和删除的实现,还内置了很多实用的数据操作方法,提供了ActiveRecords模式的最佳体验。
神鬼传奇辅助源码,vscode正则快速替换,ubuntu进管理,开网页显示tomcat,sqlite数据库 关键字,app爬虫和web爬虫区别,达内php 学费,长治seo网络推广企业,易语言编写网站,smart模板简单的应用lzw
新建记录
ijkplayer源码,vscode自动卸载,ubuntu运行sh文件,host tomcat,sqlite dbf,中国十大网页设计公司,淘宝购物数据库,域名服务器的功能,ckeditor 代码高亮 插件,vue前端日志框架,爬虫假死,php null,沈阳seo优化,秒杀springboot,成品标签模板,护理院手机网站模板,即时网页聊天,外贸站模板,网站找到后台了 如何破解账号 密码,bootstrap 多个页面切换,asp 水站 管理系统,c51程序框架生成器lzw
PHP 代码
建筑管理软件源码,ubuntu不休眠命令,爬虫菜谱教学视频,php 4,定州seo软文lzw
1. $User->find(2);

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

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

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

PHP 代码

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

2.

3. $User = new UserModel();

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 = new UserModel($data);

13. $User->add();

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

15. $data[‘name’] = ‘ThinkPHP’;

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

17. $User = new UserModel();

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 = new UserModel();

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 ($User as $key=>$val){

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

3. }

// 或者进行相关的数据更改和保存操作

也可以用变量保存下来以便随时使用。

PHP 代码

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

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

PHP 代码

1. $User->getById(8);

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

PHP 代码

1. // 查询主键为1、3、8的记录集

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

3. // 遍历数据列表

4. foreach ($User as $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方法的返回值就是最新插入的主键值,可以直接获取。

echo $user->getLastSql();


推荐阅读
author-avatar
丰日2012_102
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有