Home >Backend Development >PHP Tutorial >TP5 database operations

TP5 database operations

*文
*文Original
2017-12-29 18:04:425639browse

Operation database is the basis for project operation, and TP5 provides us with very convenient operation methods. This article shares how TP5 operates the database and explains it through examples. I hope it will be helpful to everyone.

setField updates the value of a field

1

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

2 The setField method supports updating multiple fields at the same time. You only need to pass in an array, for example:

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

For the update of statistical fields (usually numeric types), the system also provides setInc and setDec methods.

    $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

Update the data in the data table

    Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);

If the data contains the primary key, you can use it directly:

    Db::table('think_user')->update(['name' => 'thinkphp','id'=>1]);

The update method returns the number of affected data, without modifying any data Return 0

If the data to be updated requires the use of SQL functions or other fields, you can use the following method:

    Db::table('think_user')
        ->where('id', 1)
        ->update([
            'login_time'  => ['exp','now()'],
            'login_times' => ['exp','login_times+1'],
        ]);

Update the value of a field:

    Db::table('think_user')->where('id',1)->setField('name', 'thinkphp');

setField method Returns the number of affected data. If no data field is modified, returns 0

Increments or decrements the value of a field

    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 supports delay Update, if you need to delay the update, pass in the third parameter

In the following example, delay 10 seconds and add 1 to the score field

    Db::table('think_user')->where('id', 1)->setInc('score', 1, 10);

The setInc/setDec method returns the number of affected data

Assistant function

    // 更新数据表中的数据
    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');

Quick update (V5.0.5+)

The data, inc, dec and exp methods encapsulated in V5.0.5+ and above are chain operation methods , can be used in conjunction with update.

The following is an example to illustrate usage:

    Db::table('data')
        ->where('id',1)
        ->inc('read')
        ->dec('score',3)
        ->exp('name','UPPER(name)')
        ->update();

Related recommendations:

TP5 Auth Permission Management Example

TP5 automatic loading mechanism detailed explanation

##TP5 Model function summary

The above is the detailed content of TP5 database operations. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn