Home > Backend Development > PHP Tutorial > TP5 database operations

TP5 database operations

*文
Release: 2023-03-18 18:54:02
Original
5599 people have browsed it

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');
Copy after login

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);
Copy after login

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
Copy after login

Update the data in the data table

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

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

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

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'],
        ]);
Copy after login

Update the value of a field:

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

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);
Copy after login

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);
Copy after login

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');
Copy after login

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();
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template