> 백엔드 개발 > PHP 튜토리얼 > ThinkPHP5 데이터베이스 관련 작업

ThinkPHP5 데이터베이스 관련 작업

jacklove
풀어 주다: 2023-04-01 09:22:01
원래의
1593명이 탐색했습니다.

ThinkPHP5-데이터베이스 작업
1. 데이터베이스 구성
1. 애플리케이션 디렉터리 또는 모듈 디렉터리 아래에 다음 구성 매개변수를 추가합니다.

return [    // 数据库类型
    'type'        => 'mysql',    // 数据库连接DSN配置
    'dsn'         => '',    // 服务器地址
    'hostname'    => '127.0.0.1',    // 数据库名
    'database'    => 'thinkphp',    // 数据库用户名
    'username'    => 'root',    // 数据库密码
    'password'    => '',    // 数据库连接端口
    'hostport'    => '',    // 数据库连接参数
    'params'      => [],    // 数据库编码默认采用utf8
    'charset'     => 'utf8',    // 数据库表前缀
    'prefix'      => 'think_',    // 数据库调试模式
    'debug'       => false,    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'      => 0,    // 数据库读写是否分离 主从式有效
    'rw_separate' => false,    // 读写分离后 主服务器数量
    'master_num'  => 1,    // 指定从服务器序号
    'slave_no'    => '',    // 是否严格检查字段是否存在
    'fields_strict'  => true,    
];
로그인 후 복사

2. 쿼리(쿼리 작업) 실행( 쓰기 작업) 원본 SQL 문 추가, 삭제, 수정 및 쿼리

Db::connect('mysql://root:1234@127.0.0.1:3306/thinkphp#utf8');
数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集
로그인 후 복사

자리 표시자 바인딩이라는 이름의 세 가지 매개 변수 바인딩

Db::execute("insert into t_test(username,password) values('qqq','qqq')");  
Db::execute("update t_test set username ='55' where id = '10'");
Db::query('select * from t_test where id = 5');
Db::execute('delete from t_test where id = 6');
로그인 후 복사

4. 쿼리 생성자

1. 데이터 쿼리:

(1) 데이터를 쿼리하려면:

支持参数绑定:
Db::query('select * from think_user where id=?',[8]);
Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);
支持占位符绑定:
Db::query('select * from think_user where id=:id',['id'=>8]);
Db::execute('insert into think_user (id, name) values (:id, :name)',['id'=>8,'name'=>'thinkphp']);
로그인 후 복사

(2 ) 데이터 세트 쿼리

// table方法必须指定完整的数据表名Db::table('think_user')->where('id',1)->find();//find 方法查询结果不存在,返回 null
로그인 후 복사

데이터 테이블 접두사 매개변수가 설정된 경우

Db::table('think_user')->where('status',1)->select();
select 方法查询结果不存在,返回空数组
로그인 후 복사

를 사용할 수 있습니다. 데이터 테이블이 테이블 접두사 기능을 사용하지 않는 경우 이름과 테이블 메서드는 동일한 효과를 갖습니다.

(3) 보조 기능

시스템은 보다 편리한 쿼리를 위해 DB 보조 기능을 제공합니다:

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

2. 데이터 추가:

(1) 하나의 데이터 추가

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

(2) 여러 개의 데이터 추가

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

( 3) 보조 기능

$data = [
    ['foo' => 'bar', 'bar' => 'foo'],
    ['foo' => 'bar1', 'bar' => 'foo1'],
    ['foo' => 'bar2', 'bar' => 'foo2']
];Db::name('user')->insertAll($data);
insertAll 方法添加数据成功返回添加成功的条数
로그인 후 복사

3. 데이터 업데이트:

(1) 데이터 테이블의 데이터 업데이트

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

(2) 보조 기능

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

4. 데이터 삭제

(1) 테이블의 데이터 삭제 // 삭제 기본 키에 따라

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', '<', 10)->delete(); 보조 기능

// 更新数据表中的数据
db(&#39;user&#39;)->where(&#39;id&#39;,1)->update([&#39;name&#39; => &#39;thinkphp&#39;]);// 更新某个字段的值
db(&#39;user&#39;)->where(&#39;id&#39;,1)->setField(&#39;name&#39;,&#39;thinkphp&#39;);// 自增 score 字段
db(&#39;user&#39;)->where(&#39;id&#39;, 1)->setInc(&#39;score&#39;);// 自减 score 字段
db(&#39;user&#39;)->where(&#39;id&#39;, 1)->setDec(&#39;score&#39;);
로그인 후 복사

5. 체인 작업

이제 1의 상태를 충족하는 User 테이블의 처음 10개 레코드를 쿼리하고 정렬하려는 경우 사용자의 생성 시간에 따라 코드는 다음과 같습니다.

// 根据主键删除
db(&#39;user&#39;)->delete(1);// 条件删除    
db(&#39;user&#39;)->where(&#39;id&#39;,1)->delete();
로그인 후 복사

여기서 where, order 및limit 메소드는 체인 작업 메소드라고 합니다. 단, select 메소드는 마지막 메소드에 배치되어야 합니다. 체인 작업 방법), 체인 작업의 순서를 호출하는 메서드는 순서 없음입니다.

이 기사에서는 ThinkPHP5 데이터베이스의 관련 작업에 대해 설명합니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 참고하세요.

관련 권장 사항:

ThinkPHP5의 데이터베이스 및 모델 사용 정보


thinkphp5.0 데이터베이스 운영에 대한 사례 연구


ThinkPHP5와 ThinkPHP3의 유사점과 차이점을 나열해 보세요

위 내용은 ThinkPHP5 데이터베이스 관련 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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