TP5データベース操作

*文
リリース: 2023-03-18 18:54:02
オリジナル
5637 人が閲覧しました

運用データベースはプロジェクト運用の基盤であり、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);
ログイン後にコピー

統計フィールド (通常は数値型) の場合、Update、システムは 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]);
ログイン後にコピー

update メソッドは影響を受けるデータの数を返し、データが変更されていない場合は 0 を返します

更新するデータで SQL For 関数またはその他のフィールドを使用する必要がある場合は、次のメソッドを使用できます:

    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 が返されます

    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);
ログイン後にコピー

遅延更新

setInc/setDec は遅延更新が必要な場合、3 番目のパラメーターを渡します

次の例では、遅延を指定します。は 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+)

data、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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート