Maison  >  Article  >  développement back-end  >  Opérations sur la base de données TP5

Opérations sur la base de données TP5

*文
*文original
2017-12-29 18:04:425505parcourir

La base de données d'exploitation est la base de l'exploitation du projet, et TP5 nous fournit des méthodes d'exploitation très pratiques. Cet article explique comment TP5 exploite la base de données et l'explique à travers des exemples. J'espère qu'il sera utile à tout le monde.

setField met à jour la valeur d'un champ

1

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

2 La méthode setField prend en charge la mise à jour de plusieurs champs en même temps. Il vous suffit de transmettre un tableau. , par exemple :

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

Pour mettre à jour les champs statistiques (généralement de type numérique), le système fournit également les méthodes setInc et 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

Mettre à jour les données dans la table de données

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

Si les données contiennent la clé primaire, vous pouvez l'utiliser directement :

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

La mise à jour renvoie les éléments qui affectent les données Numéro, aucune donnée n'a été modifiée et 0 est renvoyé

Si les données à mettre à jour nécessitent l'utilisation de fonctions SQL ou d'autres champs, vous pouvez utiliser la méthode suivante :

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

Mettre à jour la valeur d'un champ :

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

La méthode setField renvoie le nombre de données affectées Si aucun champ de données n'est modifié, elle renvoie 0

Incréments. ou décrémente la valeur d'un champ

    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);

Mise à jour retardée

setInc/setDec prend en charge la mise à jour retardée Si une mise à jour retardée est requise, transmettez le troisième paramètre

Dans le fichier. exemple suivant, le délai est de 10 secondes et 1 est ajouté au champ score

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

La méthode setInc/setDec renvoie le nombre de données affectées

Fonction assistant

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

Mise à jour rapide (V5.0.5+)

V5.0.5+ ou supérieure Les méthodes data, inc, dec et exp d'encapsulation de version sont des méthodes d'opération en chaîne et peuvent être utilisées conjointement avec la mise à jour.

Voici un exemple pour illustrer l'utilisation :

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

Recommandations associées :

Exemple de gestion des autorisations d'authentification TP5

Explication détaillée du mécanisme de chargement automatique TP5

Résumé des fonctions du modèle TP5

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn