運用データベースはプロジェクト運用の基盤であり、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データベース操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。