>백엔드 개발 >PHP 튜토리얼 >ThinkPHP의 추가, 삭제, 수정 및 확인에 대한 요약

ThinkPHP의 추가, 삭제, 수정 및 확인에 대한 요약

jacklove
jacklove원래의
2018-06-15 10:39:231624검색

오늘은 ThinkPHP에서 추가, 삭제, 수정, 확인에 대한 몇 가지 작업을 배웠습니다. 글이 꽤 명확해진 것 같아요.

1. 작업 생성

ThinkPHP의 add 메소드를 사용하여 데이터베이스에 데이터를 추가합니다.

사용 방법은 다음과 같습니다.

$User = M("User"); // 实例化User对象
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->add($data);

또는 데이터 방식을 사용하여 연속적으로 작동합니다.

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

추가 전에 데이터 개체가 생성된 경우(예: create 또는 data 메소드가 사용됨), add 메소드 더 이상 데이터를 전달할 필요가 없습니다.

create 메소드 사용 예:

$User = M("User"); // 实例化User对象
// 根据表单提交的POST数据创建数据对象
$User->create();
$User->add(); // 根据条件保存修改的数据

기본 키가 자동 증가 유형이고 데이터가 성공적으로 삽입된 경우 Add 메소드의 반환 값은 가장 최근에 삽입된 기본 키입니다. 직접 Get이 가능한 키 값입니다.

2. 데이터 읽기

ThinkPHP에서 데이터를 읽는 방법은 여러 가지가 있는데, 일반적으로 데이터 읽기와 데이터 세트 읽기로 나누어집니다.

findall 또는 select 메소드를 사용하여 데이터 세트 읽기(findall과 select 메소드는 동일함):

$User = M("User"); // 实例化User对象
// 查找status值为1的用户数据以创建时间排序返回10条数据
$list = $User->where('status=1')->order('create_time')->limit(10)->select();

결과가 없는 경우 select 메소드의 반환 값은 2차원 배열입니다. 발견, 또한 빈 배열을 반환합니다. 복잡한 데이터 쿼리는 위에서 언급한 일관된 작업 방법으로 완료할 수 있습니다. 가장 복잡한 일관성 있는 방법은 where 방법을 사용하는 것입니다. 이 부분에는 많은 내용이 포함되므로 쿼리 언어 부분에서 쿼리 조건을 조합하는 방법에 대해 자세히 설명합니다. 기본 질의에는 당분간 관련 질의 부분은 포함하지 않으나, 관련 모델을 이용하여 데이터 연산을 수행하는 부분은 관련 모델 부분을 참고하시기 바랍니다.

찾기 방법을 사용하여 데이터 읽기:

데이터 읽기 작업은 실제로 데이터 세트와 유사합니다. 선택에 사용할 수 있는 모든 일관된 작업 방법은 찾기 방법에도 사용할 수 있습니다. find 메소드는 최대 하나의 레코드만 반환하므로 찾기 쿼리 작업에는 제한 메소드가 유효하지 않습니다.

$User = M("User"); // 实例化User对象
// 查找status值为1name值为think的用户数据
$User->where('status=1 AND name="think"
 ')->find();

조건을 만족하는 데이터가 2개 이상 있어도 find 메소드는 첫 번째 레코드만 반환합니다.

특정 필드의 값을 읽으려면 getField 메소드를 사용할 수 있습니다. 예:

$User = M("User"); // 实例化User对象
// 获取ID为3的用户的昵称
$nickname = $User->where('id=3')->getField('nickname');

필드가 하나만 있으면 항상 값이 반환됩니다.

여러 필드가 전달되면 연관 배열이 반환될 수 있습니다.

$User = M("User"); // 实例化User对象
// 获取所有用户的ID和昵称列表
$list = $User->getField('id,nickname');

반환된 목록은 배열이고, 키 이름은 사용자 ID, 키 값은 사용자 닉네임입니다. .

3. 데이터 업데이트

ThinkPHP의 save 메소드를 사용하여 데이터베이스를 업데이트하고 일관된 작업 사용도 지원합니다.

$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->where('id=5')->save($data); // 根据条件保存修改的数据

전체 데이터 테이블을 업데이트할 때 데이터베이스의 보안을 보장하고 오류를 방지하기 위해 업데이트 조건이 없고 데이터 개체 자체에 기본 키 필드가 포함되어 있지 않은 경우 save 방법은 데이터베이스 기록을 업데이트하지 않습니다.

따라서 아래 코드는 데이터베이스의 모든 레코드를 변경업데이트하지 않습니다

$User->save($data); 

除非使用下面的方式:

$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值

$data['id'] = 5;
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->save($data); // 根据条件保存修改的数据

如果id是数据表的主键的话,系统自动会把主键的值作为更新条件来更新其他字段的值。

还有一种方法是通过create或者data方法创建要更新的数据对象,然后进行保存操作,这样save方法的参数可以不需要传入。

$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->where('id=5')->data($data)->save(); // 根据条件保存修改的数据

使用create方法的例子:

$User = M("User"); // 实例化User对象
// 根据表单提交的POST数据创建数据对象
$User->create();
$User->save(); //根据条件保存要修改的数据

上面的情况,表单必须包含一个以主键为名称的隐藏域,才能完成保存操作。

如果只是更新个别字段的值,可以使用setField方法:

$User = M("User"); // 实例化User对象
// 更改用户的name值
$User-> where('id=5')->setField('name','ThinkPHP');
setField方法支持同时更新多个字段,只需要传入数组即可,例如:
$User = M("User"); // 实例化User对象
// 更改用户的name和email的值
$User-> where('id=5')->setField(array('name','email'),array('ThinkPHP','ThinkPHP@gmail.com'));

而对于统计字段(通常指的是数字类型)的更新,系统还提供了setIncsetDec方法:

$User = M("User"); // 实例化User对象
$User->setInc('score','id=5',3);// 用户的积分加3
$User->setInc('score','id=5'); // 用户的积分加1
$User->setDec('score','id=5',5);// 用户的积分减5
$User->setDec('score','id=5'); // 用户的积分减1

四、删除数据

在ThinkPHP使用delete方法删除数据库的记录。同样可以使用连贯操作进行删除操作。

$User = M("User"); // 实例化User对象
$User->where('id=5')->delete(); // 删除id为5的用户数据
$User->where('status=0')->delete(); // 删除所有状态为0的用户数据

delete方法可以用于删除单个或者多个数据,主要取决于删除条件,也就是where方法的参数,也可以用orderlimit方法来限制要删除的个数,例如:

// 删除所有状态为0的5个用户数据按照创建时间排序
$User->where('status=0')->order('create_time')->limit('5')->delete();

本文讲解了关于ThinkPHP的增、删、改、查 的一些总结,更多相关内容请关注php中文网。

相关推荐:

where方法的应用讲解

ThinkPHP 双重循环遍历输出 的相关内容

ThinkPHP5快速入门 方法的介绍

위 내용은 ThinkPHP의 추가, 삭제, 수정 및 확인에 대한 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.