TP5 데이터베이스 작업

*文
풀어 주다: 2023-03-18 18:54:02
원래의
5589명이 탐색했습니다.

운영 데이터베이스는 프로젝트 운영의 기반이 되며, TP5는 매우 편리한 운영 방법을 제공합니다. 이 글은 TP5가 데이터베이스를 운영하는 방법을 공유하고 예제를 통해 설명하는 것이 모든 사람에게 도움이 되기를 바랍니다.

setField는 필드 값을 업데이트합니다.

1

    $User = M("User"); // 实例化User对象
    // 更改用户的name值
    $User-> where('id=5')->setField('name','ThinkPHP');
로그인 후 복사

2 setField 메서드는 동시에 여러 필드 업데이트를 지원합니다. 배열을 전달하기만 하면 됩니다. 예:

      $User = M("User"); // 实例化User对象
    // 更改用户的name和email的值
    $data = array('name'=>'ThinkPHP','email'=>'ThinkPHP@gmail.com');
    $User-> where('id=5')->setField($data);
로그인 후 복사

통계 필드(일반적으로 숫자 유형)의 경우 업데이트, 시스템은 setInc 및 setDec 메소드도 제공합니다.

    $User = M("User"); // 实例化User对象
    $User->where('id=5')->setInc('score',3); // 用户的积分加3
    $User->where('id=5')->setInc('score'); // 用户的积分加1
    $User->where('id=5')->setDec('score',5); // 用户的积分减5
    $User->where('id=5')->setDec('score'); // 用户的积分减1
로그인 후 복사

데이터 테이블의 데이터 업데이트

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

데이터에 기본 키가 포함되어 있으면 직접 사용할 수 있습니다.

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

업데이트 메서드는 영향을 받은 데이터의 수를 반환하고, 수정된 데이터가 없으면 0을 반환합니다

업데이트할 데이터에 SQL을 사용해야 하는 경우 함수 또는 기타 필드에 다음 방법을 사용할 수 있습니다.

    Db::table('think_user')
        ->where('id', 1)
        ->update([
            'login_time'  => ['exp','now()'],
            'login_times' => ['exp','login_times+1'],
        ]);
로그인 후 복사

필드 값 업데이트:

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

setField 메서드는 데이터가 없는 경우 영향을 받은 데이터의 수를 반환합니다. 필드가 수정되면 0

필드를 늘리거나 줄입니다. Value

    setInc/setDec 如不加第二个参数,默认值为1
    // 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

setInc/setDec는 지연된 업데이트가 필요한 경우 세 번째 매개변수

를 전달합니다. 10초이고 점수 필드에 1이 추가됩니다

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

setInc/setDec 메소드 영향을 받은 데이터의 수를 반환합니다

보조 기능

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

빠른 업데이트(V5.0.5+)

데이터, inc, dec 및 exp 메소드 V5.0.5+ 이상에서는 체인 연산 방법이 캡슐화되어 있으며 업데이트와 함께 사용할 수 있습니다.

다음은 사용법을 설명하는 예입니다.

    Db::table('data')
        ->where('id',1)
        ->inc('read')
        ->dec('score',3)
        ->exp('name','UPPER(name)')
        ->update();
로그인 후 복사

관련 권장 사항:

TP5 인증 권한 관리 예

TP5 자동 로딩 메커니즘 자세한 설명

TP 5 모델 기능 요약

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

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