ThinkPHP提供了灵活和方便的数据操作方法,不仅实现了对数据库操作的四大基本操作(CURD):创建、读取、更新和删除的实现,还内置了很多实用的数据操作方法,提供了ActiveRecords模式的最佳体验。
新建记录
PHP 代码
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();

thinkphp是国产框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了关于使用think-queue来实现普通队列和延迟队列的相关内容,think-queue是thinkphp官方提供的一个消息队列服务,下面一起来看一下,希望对大家有帮助。

thinkphp基于的mvc分别是指:1、m是model的缩写,表示模型,用于数据处理;2、v是view的缩写,表示视图,由View类和模板文件组成;3、c是controller的缩写,表示控制器,用于逻辑处理。mvc设计模式是一种编程思想,是一种将应用程序的逻辑层和表现层进行分离的方法。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了使用jwt认证的问题,下面一起来看一下,希望对大家有帮助。

thinkphp扩展有:1、think-migration,是一种数据库迁移工具;2、think-orm,是一种ORM类库扩展;3、think-oracle,是一种Oracle驱动扩展;4、think-mongo,一种MongoDb扩展;5、think-soar,一种SQL语句优化扩展;6、porter,一种数据库管理工具;7、tp-jwt-auth,一个jwt身份验证扩展包。

thinkphp查询库是否存在的方法:1、打开相应的tp文件;2、通过“ $isTable=db()->query('SHOW TABLES LIKE '."'".$data['table_name']."'");if($isTable){...}else{...}”方式验证表是否存在即可。

本篇文章给大家带来了关于ThinkPHP的相关知识,其中主要整理了使用think-queue实现redis消息队列的相关问题,下面一起来看一下,希望对大家有帮助。

在thinkphp3.2中,可以利用define关闭调试模式,该标签用于变量和常量的定义,将入口文件中定义调试模式设为FALSE即可,语法为“define('APP_DEBUG', false);”;开启调试模式将参数值设置为true即可。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
