Thinkphp 5.0의 데이터베이스(키코드) 동작에 대해 이야기해보겠습니다.

青灯夜游
풀어 주다: 2022-09-23 19:28:36
앞으로
1478명이 탐색했습니다.

표준 웹사이트는 데이터베이스 운영과 분리될 수 없어야 합니다. 이 과정에서는 ThinkPHP5 데이터 운영의 신비를 밝혀내고 즐겁게 ThinkPHP5를 사용하여 데이터베이스 운영을 더욱 즐겁게 만들어 드리겠습니다.

Thinkphp 5.0의 데이터베이스(키코드) 동작에 대해 이야기해보겠습니다.

기본 사용법

쿼리 작업

Db::query('select * from think_user where id=?',[8]);
로그인 후 복사

쓰기 작업

Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);
로그인 후 복사

쿼리 생성자

Query data

find는 레코드를 반환합니다. 결과는 1차원 배열입니다. 결과가 없으면 NULL이 반환됩니다.

Db::table('think_user')->where('id',1)->find();
로그인 후 복사

select는 모든 레코드를 반환합니다. 반환된 결과는 2차원 배열입니다.

Db::table('think_user')->where('status',1)->select();
로그인 후 복사

Assistant 기능

System 보다 편리한 쿼리를 위해 db 보조 기능이 제공됩니다.

db('user')->where('id',1)->find();
db('user')->where('status',1)->select();
로그인 후 복사

참고: db 보조 기능을 사용하면 기본적으로 Db::name 또는 Db::table 메서드는 싱글톤입니다. db 함수가 동일한 링크를 사용해야 하는 경우

db('user',[],false)->where('id',1)->find();
db('user',[],false)->where('status',1)->select();
로그인 후 복사

Add data

와 같은 세 번째 매개변수를 전달할 수 있습니다. Db 클래스의 삽입 메소드를 사용하여 데이터베이스에 데이터를 제출하세요

$data = ['foo' => 'bar', 'bar' => 'foo'];
Db::table('think_user')->insert($data);
로그인 후 복사

여러 데이터 추가

여러 데이터를 추가하려면 추가할 데이터를 Db 클래스의 insertAll 메서드에 직접 전달하면 됩니다.

$data = [    ['foo' => 'bar', 'bar' => 'foo'],
    ['foo' => 'bar1', 'bar' => 'foo1'],
    ['foo' => 'bar2', 'bar' => 'foo2']
];
Db::name('user')->insertAll($data);
로그인 후 복사

insertAll 메서드는 데이터를 성공적으로 추가하고 성공적으로 추가된 개수를 반환합니다. 조각

보조 함수

// 添加单条数据
db('user')->insert($data);

// 添加多条数据
db('user')->insertAll($list);
로그인 후 복사

Update data

update 메소드는 영향을 받은 데이터의 수를 반환하고, 수정된 데이터가 없으면 0

Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);
로그인 후 복사
를 반환합니다.

특정 필드의 값 업데이트: setField 메소드는 해당 숫자를 반환합니다. 영향을 받은 데이터 중 수정된 데이터 필드가 없으면 0

Db::table('think_user')->where('id',1)->setField('name', 'thinkphp');
로그인 후 복사
自增或自减一个字段的值
// score 字段加 1
Db::table('think_user')->where('id', 1)->setInc('score');
// score 字段加 5
Db::table('think_user')->where('id', 1)->setInc('score', 5);
// score 字段减 1
Db::table('think_user')->where('id', 1)->setDec('score');
// score 字段减 5
Db::table('think_user')->where('id', 1)->setDec('score', 5);
로그인 후 복사

Delayed update

Db::table('think_user')->where('id', 1)->setInc('score', 1, 10);
로그인 후 복사

Delete data

// 根据主键删除
Db::table('think_user')->delete(1);
Db::table('think_user')->delete([1,2,3]);

// 条件删除    
Db::table('think_user')->where('id',1)->delete();
Db::table('think_user')->where('id','<&#39;,10)->delete();
로그인 후 복사

Conditional query method

where

where 메소드를 사용하여 다음을 수행할 수 있습니다. AND 조건부 쿼리 수행:

Db::table('think_user')
    ->where('name','like','%thinkphp')
    ->where('status',1)
    ->find();
로그인 후 복사

whereOr method

Db::table('think_user')
    ->where('name','like','%thinkphp')
    ->whereOr('title','like','%thinkphp')
    ->find();
로그인 후 복사

Mixed query

where 메서드와 whereOr 메서드는 복잡한 쿼리 조건에서 함께 혼합되어야 하는 경우가 많습니다.

$result = Db::table('think_user')->where(function ($query) {
    $query->where('id', 1)->whereor('id', 2);
})->whereOr(function ($query) {
    $query->where('name', 'like', 'think')->whereOr('name', 'like', 'thinkphp');
})->select();
로그인 후 복사

쿼리 표현식

쿼리 표현식은 대부분의 SQL 쿼리 구문을 지원하며 ThinkPHP 쿼리 언어의 핵심이기도 합니다. 쿼리 표현식의 사용 형식:

where('字段名','表达式','查询条件');
whereOr('字段名','表达式','查询条件');
로그인 후 복사
表达式 含义
EQ、= 等于(=)
NEQ、<> 不等于(<>)
GT、> 大于(>)
EGT、>= 大于等于(>=)
LT、< 小于(<)
ELT、<= 小于等于(<=)
LIKE 模糊查询
[NOT] BETWEEN (不在)区间查询
[NOT] IN (不在)IN 查询
[NOT] NULL 查询字段是否(不)是NULL
[NOT] EXISTS EXISTS查询
EXP 表达式查询,支持SQL语法
> time 时间比较
< time 时间比较
between time 时间比较
notbetween time 时间比较
로그인 후 복사

[관련 튜토리얼 권장 사항: thinkphp 프레임워크]

위 내용은 Thinkphp 5.0의 데이터베이스(키코드) 동작에 대해 이야기해보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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