찾다
백엔드 개발PHP 튜토리얼ThinkPHP 之 curd 操作_PHP教程
ThinkPHP 之 curd 操作_PHP教程Jul 14, 2016 am 10:10 AM
thinkphp그리고성취하다오른쪽공급작동하다데이터방법유연한~의

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();

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477477.htmlTechArticleThinkPHP提供了灵活和方便的数据操作方法,不仅实现了对数据库操作的四大基本操作(CURD):创建、读取、更新和删除的实现,还内置了很...
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
thinkphp是不是国产框架thinkphp是不是国产框架Sep 26, 2022 pm 05:11 PM

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

一起聊聊thinkphp6使用think-queue实现普通队列和延迟队列一起聊聊thinkphp6使用think-queue实现普通队列和延迟队列Apr 20, 2022 pm 01:07 PM

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

thinkphp的mvc分别指什么thinkphp的mvc分别指什么Jun 21, 2022 am 11:11 AM

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

实例详解thinkphp6使用jwt认证实例详解thinkphp6使用jwt认证Jun 24, 2022 pm 12:57 PM

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

thinkphp扩展插件有哪些thinkphp扩展插件有哪些Jun 13, 2022 pm 05:45 PM

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 怎么查询库是否存在thinkphp 怎么查询库是否存在Dec 05, 2022 am 09:40 AM

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

一文教你ThinkPHP使用think-queue实现redis消息队列一文教你ThinkPHP使用think-queue实现redis消息队列Jun 28, 2022 pm 03:33 PM

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

thinkphp3.2怎么关闭调试模式thinkphp3.2怎么关闭调试模式Apr 25, 2022 am 10:13 AM

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

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SecList

SecList

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

안전한 시험 브라우저

안전한 시험 브라우저

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

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF

mPDF

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