ThinkPHP는 오픈 소스 PHP 기반 웹 애플리케이션 프레임워크로 쿼리문 구성 및 실행을 포함하여 편리한 개발을 위한 다양한 도구와 솔루션을 제공합니다. 이 기사에서는 개발자가 데이터베이스 작업을 보다 효율적으로 수행하는 데 도움이 되는 쿼리 빌더 및 데이터 모델을 포함하여 ThinkPHP의 쿼리 문 기능을 소개합니다.
1. 쿼리 빌더
ThinkPHP의 쿼리 빌더는 복잡한 SQL 문을 빠르게 작성하기 위한 객체 지향 SQL 문 빌더 세트입니다. 쿼리 빌더에서는 여러 가지 방법을 사용하여 SELECT, UPDATE, INSERT 및 DELETE 유형의 SQL 문을 작성할 수 있습니다.
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() 메서드는 단일 레코드를 쿼리하는 것을 나타냅니다.
UPDATE 쿼리 문을 사용하여 데이터베이스의 데이터를 업데이트하세요. 쿼리 빌더의 update() 메서드를 사용하여 UPDATE 쿼리 문을 작성할 수 있습니다.
// 更新 id 为 1 的用户数据 Db::name('user')->where('id', 1)->update(['name' => 'Tom']); // 将所有用户的角色都更新为 2 Db::name('user')->update(['role_id' => 2]);
update() 메서드에서 첫 번째 매개변수는 업데이트할 레코드의 조건을 나타내고 두 번째 매개변수는 업데이트된 데이터입니다. 콘텐츠.
INSERT 쿼리 문을 사용하여 데이터베이스에 새 데이터를 삽입합니다. 쿼리 빌더의 insert() 메서드를 사용하여 INSERT 쿼리 문을 작성할 수 있습니다.
// 向 user 表中插入一条新数据 Db::name('user')->insert(['name' => 'Jack', 'age' => 20, 'role_id' => 1]);
insert() 메서드에서 매개변수는 삽입할 새 데이터 내용입니다.
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.
다음 코드를 사용하여 데이터 모델 클래스를 정의할 수 있습니다.
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 속성은 타임스탬프를 자동으로 쓸지 여부를 나타냅니다.
데이터 모델의 find(), select(), where() 및 기타 메서드를 사용하여 데이터베이스를 쿼리할 수 있습니다.
// 查询 id 为 1 的用户数据 $user = User::find(1); // 查询用户表中所有数据 $users = User::select(); // 查询年龄大于 18 岁的用户数据 $users = User::where('age', '>', 18)->select();
위 예에서는 정적 메서드를 사용했습니다. 데이터베이스 쿼리를 작성하는 데이터 모델 클래스입니다.
데이터 모델의 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() 메서드를 호출하여 데이터베이스에 제출합니다.
데이터 모델의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!