> PHP 프레임워크 > ThinkPHP > 데이터베이스에서 Thinkphp5.0의 작동 방법은 무엇입니까?

데이터베이스에서 Thinkphp5.0의 작동 방법은 무엇입니까?

WBOY
풀어 주다: 2023-05-31 17:28:06
앞으로
955명이 탐색했습니다.

기본 사용법

쿼리 작업

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

쓰기 작업

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

쿼리 생성자

Query data

find가 레코드를 반환하고 반환된 결과가 1차원 배열인 경우 존재하지 않는 경우 return NULL

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

select는 모든 레코드를 반환하며 반환된 결과는 2차원 배열입니다. 결과가 존재하지 않으면 빈 배열이 반환됩니다.

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

Assistant 함수

시스템 더 편리하게 사용할 수 있는 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);
로그인 후 복사

Add 여러 개의 데이터

Add 여러 개의 데이터를 Db 클래스의 insertAll 메서드에 직접 전달하여 데이터를 추가할 수 있습니다.

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

insertAll 메서드는 성공적으로 추가된 데이터의 개수를 반환합니다. 수정된 데이터가 없으면 0

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

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

를 반환합니다. 특정 필드의 값 업데이트: setField 메서드는 영향을 받은 데이터의 수를 반환하고, 데이터 필드가 수정되지 않으면 0

Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);
로그인 후 복사
Db::table('think_user')->where('id',1)->setField('name', 'thinkphp');
로그인 후 복사
Delayed update

自增或自减一个字段的值
// 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);
로그인 후 복사

데이터 삭제를 반환합니다.

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

조건부 쿼리 방법

where

where 메서드를 사용하여 조건부 쿼리를 수행할 수 있습니다:

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

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

whereOr 메서드

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

혼합 쿼리

where 메소드 및 whereOr 메소드 복잡한 쿼리 조건은 종종 함께 혼합되어야 합니다. 예는 다음과 같습니다:

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

쿼리 표현식

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

$result = Db::table(&#39;think_user&#39;)->where(function ($query) {
    $query->where(&#39;id&#39;, 1)->whereor(&#39;id&#39;, 2);
})->whereOr(function ($query) {
    $query->where(&#39;name&#39;, &#39;like&#39;, &#39;think&#39;)->whereOr(&#39;name&#39;, &#39;like&#39;, &#39;thinkphp&#39;);
})->select();
로그인 후 복사
where(&#39;字段名&#39;,&#39;表达式&#39;,&#39;查询条件&#39;);
whereOr(&#39;字段名&#39;,&#39;表达式&#39;,&#39;查询条件&#39;);
로그인 후 복사
.

위 내용은 데이터베이스에서 Thinkphp5.0의 작동 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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