> PHP 프레임워크 > Laravel > thinkphp의 쿼리문에 대한 자세한 설명

thinkphp의 쿼리문에 대한 자세한 설명

PHPz
풀어 주다: 2023-04-21 10:57:48
원래의
796명이 탐색했습니다.

ThinkPHP는 오픈 소스 PHP 기반 웹 애플리케이션 프레임워크로 쿼리문 구성 및 실행을 포함하여 편리한 개발을 위한 다양한 도구와 솔루션을 제공합니다. 이 기사에서는 개발자가 데이터베이스 작업을 보다 효율적으로 수행하는 데 도움이 되는 쿼리 빌더 및 데이터 모델을 포함하여 ThinkPHP의 쿼리 문 기능을 소개합니다.

1. 쿼리 빌더

ThinkPHP의 쿼리 빌더는 복잡한 SQL 문을 빠르게 작성하기 위한 객체 지향 SQL 문 빌더 세트입니다. 쿼리 빌더에서는 여러 가지 방법을 사용하여 SELECT, UPDATE, INSERT 및 DELETE 유형의 SQL 문을 작성할 수 있습니다.

  1. SELECT 쿼리 문

SELECT 쿼리 문을 사용하여 데이터베이스의 데이터를 가져옵니다. 쿼리 빌더의 select() 메서드를 사용하여 SELECT 쿼리 문을 작성할 수 있습니다.

// 查询所有用户数据
Db::name('user')->select();

// 查询 id 为 1 的用户数据
Db::name('user')->where('id', 1)->find();

// 查询年龄大于 18 岁的用户数据
Db::name('user')->where('age', '>', 18)->select();
로그인 후 복사

위 코드에서 Db::name('user')는 쿼리할 데이터 테이블을 나타냅니다. select() 메서드는 모든 데이터를 쿼리하는 것을 나타내고, find() 메서드는 단일 레코드를 쿼리하는 것을 나타냅니다.

  1. UPDATE 쿼리 문

UPDATE 쿼리 문을 사용하여 데이터베이스의 데이터를 업데이트하세요. 쿼리 빌더의 update() 메서드를 사용하여 UPDATE 쿼리 문을 작성할 수 있습니다.

// 更新 id 为 1 的用户数据
Db::name('user')->where('id', 1)->update(['name' => 'Tom']);

// 将所有用户的角色都更新为 2
Db::name('user')->update(['role_id' => 2]);
로그인 후 복사

update() 메서드에서 첫 번째 매개변수는 업데이트할 레코드의 조건을 나타내고 두 번째 매개변수는 업데이트된 데이터입니다. 콘텐츠.

  1. INSERT 쿼리 문

INSERT 쿼리 문을 사용하여 데이터베이스에 새 데이터를 삽입합니다. 쿼리 빌더의 insert() 메서드를 사용하여 INSERT 쿼리 문을 작성할 수 있습니다.

// 向 user 表中插入一条新数据
Db::name('user')->insert(['name' => 'Jack', 'age' => 20, 'role_id' => 1]);
로그인 후 복사

insert() 메서드에서 매개변수는 삽입할 새 데이터 내용입니다.

  1. DELETE 쿼리문

DELETE 쿼리문을 사용하여 데이터베이스의 데이터를 삭제하세요. 쿼리 빌더의 delete() 메서드를 사용하여 DELETE 쿼리 문을 작성할 수 있습니다.

// 删除 id 为 1 的数据
Db::name('user')->where('id', 1)->delete();

// 删除所有角色为 3 的用户数据
Db::name('user')->where('role_id', 3)->delete();
로그인 후 복사

delete() 메서드에서 매개변수는 삭제할 레코드의 조건입니다.

2. 데이터 모델

ThinkPHP는 쿼리 빌더 외에도 데이터 테이블을 클래스에 매핑하고 클래스 속성의 변경에 따라 데이터베이스를 자동으로 처리할 수 있는 데이터 모델 기반의 데이터베이스 작업 방법 세트도 제공합니다. .로그된 CRUD.

  1. 데이터 모델 정의

다음 코드를 사용하여 데이터 모델 클래스를 정의할 수 있습니다.

namespace app\common\model;

use think\Model;

class User extends Model
{
    // 数据表名
    protected $table = 'user';

    // 自动写入时间戳
    protected $autoWriteTimestamp = true;

    // 模型关联:用户角色
    public function role()
    {
        return $this->belongsTo(Role::class, 'role_id');
    }
}
로그인 후 복사

위 예에서는 thinkModel 클래스를 상속하여 사용자 데이터 모델 클래스를 정의했습니다. $table 속성은 매핑할 데이터 테이블의 이름을 나타내고, $autoWriteTimestamp 속성은 타임스탬프를 자동으로 쓸지 여부를 나타냅니다.

  1. 데이터 쿼리

데이터 모델의 find(), select(), where() 및 기타 메서드를 사용하여 데이터베이스를 쿼리할 수 있습니다.

// 查询 id 为 1 的用户数据
$user = User::find(1);

// 查询用户表中所有数据
$users = User::select();

// 查询年龄大于 18 岁的用户数据
$users = User::where('age', '>', 18)->select();
로그인 후 복사

위 예에서는 정적 메서드를 사용했습니다. 데이터베이스 쿼리를 작성하는 데이터 모델 클래스입니다.

  1. 데이터 업데이트 및 삽입

데이터 모델의 save() 메서드를 사용하여 데이터를 업데이트하고 삽입할 수 있습니다.

// 更新 id 为 1 的用户数据
$user = User::find(1);
$user->name = 'Tom';
$user->save();

// 向 user 表中插入一条新数据
$user = new User;
$user->name = 'Jack';
$user->age = 20;
$user->role_id = 1;
$user->save();
로그인 후 복사

위 예에서는 데이터 모델 개체의 속성을 사용하여 데이터를 다음과 같이 설정합니다. 업데이트 또는 삽입한 다음 save() 메서드를 호출하여 데이터베이스에 제출합니다.

  1. 데이터 삭제

데이터 모델의 delete() 메서드를 사용하여 데이터를 삭제할 수 있습니다.

// 删除 id 为 1 的用户数据
$user = User::find(1);
$user->delete();

// 删除所有角色为 3 的用户数据
User::where('role_id', 3)->delete();
로그인 후 복사

위 예에서는 데이터 모델 개체의 delete() 메서드를 사용하여 지정된 레코드를 삭제했습니다. 또는 static 메서드의 where() 메서드를 사용하여 삭제할 레코드를 선택한 다음 delete() 메서드를 호출하여 삭제할 수 있습니다.

요약

위는 ThinkPHP를 사용하여 쿼리 문을 구성하는 방법입니다. 쿼리 빌더는 SELECT, UPDATE, INSERT, DELETE 등 SQL 문을 구성하는 다양한 방법을 제공하고, 데이터 모델은 객체 지향 접근 방식을 제공합니다. 데이터베이스를 조작하십시오. 쿼리 빌더를 사용하든 데이터 모델을 사용하든 우리는 개발자가 데이터베이스 작업을 수행할 수 있도록 복잡한 SQL 쿼리 문을 빠르게 작성할 수 있습니다.

위 내용은 thinkphp의 쿼리문에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿