Maison >développement back-end >tutoriel php >Opérations d'ajout, de suppression, de modification et de requête dans la base de données thinkPHP

Opérations d'ajout, de suppression, de modification et de requête dans la base de données thinkPHP

不言
不言original
2018-06-07 15:22:172942parcourir

Cet article présente principalement les méthodes de fonctionnement de l'ajout, de la suppression, de la modification et de l'interrogation de la base de données thinkPHP, et analyse en détail les fonctions de fonctionnement de la base de données couramment utilisées et les compétences d'utilisation associées de thinkPHP sous forme d'exemples. Les amis dans le besoin peuvent s'y référer.

Cet article décrit les exemples de méthodes de fonctionnement de la base de données thinkPHP pour l'ajout, la suppression, la modification et la vérification. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

thinkphp encapsule l'ajout, la suppression, la modification et l'interrogation de la base de données, la rendant plus pratique à utiliser, mais pas nécessairement flexible.

peut être utilisé en encapsulation. Vous devez écrire du SQL et vous pouvez exécuter du SQL.

1. Original

$Model = new Model(); // 实例化一个model对象 没有对应任何数据表
$insert_sql = "INSERT INTO sh_wxuser_collection (user_id,store_id,good_id,addtime) VALUES('".$user_id."','".$store_id."','".$good_id."','".$addtime."');";
$Model - >query($insert_sql);

2. le nom de la table ici est sh_wxuser_collection. sh est le préfixe.

$model = M('wxuser_collection'); //自动省去sh
$insert_sql = "INSERT INTO __TABLE__ (user_id,store_id,good_id,addtime) VALUES('".$user_id."','".$store_id."','".$good_id."','".$addtime."');";
$model - >query($insert_sql);

Une autre façon d'écrire, _ peut être écrit en majuscule, il se convertira automatiquement en _

$model = M('WxuserCollection'); //自动省去sh
$insert_sql = "INSERT INTO __TABLE__ (user_id,store_id,good_id,addtime) VALUES('".$user_id."','".$store_id."','".$good_id."','".$addtime."');";
$model - >query($insert_sql);

3. Déclaration d'ajout encapsulée

$model = M('WxuserCollection');
$data = array('user_id' = >$user_id, 'store_id' = >$store_id, 'good_id' = >$good_id, 'addtime' = >$addtime);
$model - >data($data) - >add();

4. L'instruction

$model = M('WxuserCollection');
$data = array('user_id' = >$user_id, 'store_id' = >$store_id, 'good_id' = >$good_id, 'addtime' = >$addtime);
$model - >data($data) - >where('id=3') - >save();

est en effet très pratique, mais à part la commodité, n'oubliez pas le sql d'origine, le sql d'origine, est le le plus intéressant et le plus efficace.

5.find()

$model = M('WxuserCollection');
$res1 = $model - >find(1);
$res2 = $model - >find(2);
$res3 = $model - >where('good_id=1105 AND store_id = 1 AND user_id = 20') - >find();

find obtient une donnée, find(1) obtient l'identifiant Pour les données de 1, find(2) obtient les données avec l'identifiant 2. La dernière consiste à obtenir le premier élément de données avec la condition où.

5.select()

$model = M('WxuserCollection');
$res = $model - >where('good_id=1105 AND store_id = 1 AND user_id = 20') - >field('id,good_id as good') - >select();

Obtenir toutes les données. L'avantage ici est que vous n'avez pas à prendre en compte l'ordre des instructions SQL, vous pouvez simplement appeler la fonction comme vous le souhaitez.

6.delete()

$model = M('WxuserCollection');
$res = $model - >where('id=1') - >delete(); // 成功返回1 失败返回0

Supprimer les opérations en fonction des conditions

7.field()

$model = M('WxuserCollection');
$res = $model - >field('id,good_id as good') - >select();
$res = $model - >field(array('id', 'good_id' = >'good')) - >select();
$res = $model - >field('id', true) - >select();

Chaîne, tableau de deux manières, troisième Le premier signifie obtenir tous les champs sauf l'identifiant de traitement.

8.order()

$model = M('WxuserCollection');
$res = $model - >order('id desc') - >select();
$res = $model - >order('id asc') - >select();
$res = $model - >order(array('id' = >'desc')) - >select();
$res = $model - >order(array('id')) - >select();

Deux méthodes sont une chaîne et un tableau, la valeur par défaut est asc.

9.join()

$Model->join(' work ON artist.id = work.artist_id')->join('card ON artist.card_id = card.id')->select();
$Model->join('RIGHT JOIN work ON artist.id = work.artist_id')->select();
$Model->join(array(' work ON artist.id = work.artist_id','card ON artist.card_id = card.id'))->select();

La méthode LEFT JOIN est utilisée par défaut si vous en avez besoin. pour utiliser d'autres JOIN La méthode peut être remplacée par la deuxième méthode.

Si les paramètres de la méthode join sont des tableaux, la méthode join ne peut être utilisée qu'une seule fois et elle ne peut pas être mélangée avec la méthode string.

10.setInc()

$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

11.getField()

Obtenir une valeur de champ

$User = M("User"); // 实例化User对象
// 获取ID为3的用户的昵称
$nickname = $User->where('id=3')->getField('nickname');

Le surnom renvoyé est un résultat de chaîne. Autrement dit, même si plusieurs champs remplissent la condition, un seul résultat sera renvoyé.

Obtenir une certaine colonne de champ

Si vous souhaitez renvoyer la colonne de champ (résultats multiples) qui répond aux exigences, vous pouvez utiliser :

$User = M("User"); // 实例化User对象
// 获取status为1的用户的昵称列表
$nickname = $User->where('status=1')->getField('nickname',true);

Le deuxième paramètre est passé à true, et le pseudo renvoyé est un tableau contenant une liste de tous les pseudos qui remplissent les conditions.

Si vous devez limiter le nombre de résultats renvoyés, vous pouvez utiliser :

$nickname = $User->where('status=1')->getField('nickname',8);

Obtenir 2 listes de champs

$User = M("User"); // 实例化User对象
 // 获取status为1的用户的昵称列表
$nickname = $User->where('status=1')->getField('id,nickname');

Si la méthode getField transmet plusieurs noms de champs, un tableau associatif sera renvoyé par défaut, avec le la valeur du premier champ étant Index (le premier champ doit donc être choisi aussi non dupliqué que possible).

Obtenir plusieurs listes de champs

$result = $User->where('status=1')->getField('id,account,nickname');

Si 2 sont transmis dans ce qui précède les noms de champs renverront un tableau à deux dimensions (similaire à la valeur de retour de la méthode select, la différence est que le nom de clé de l'index est la valeur du premier champ du tableau à deux dimensions)

Cas d'utilisation complet

$where = array('a.store_id' => $this->store_id, 'a.user_id' => $this->user_id);
$collects = $this->collectModel->table("sh_wxuser_collection a")->field(array('b.name','b.price','b.oprice','b.logoimg','a.goods_id'))->limit($start, $offset)->order('a.addtime DESC')->where($where)->join(' sh_goods b ON a.goods_id = b.id')->select();// 获取当前页的记录
echo M()->getLastSql(); // 调试sql语句用
$count = $this->collectModel->table("sh_wxuser_collection a")->where($where)->count(); // 获取总的记录数

Puisque deux tables sont combinées ici, la méthode table est utilisée pour redéfinir le nom de la table en conséquence. Les conditions et les paramètres doivent être préfixés. a. Ou b.

où le champ field est soit une chaîne, soit un tableau.

field('b.name', 'b.price', 'b.oprice', 'b.logoimg', 'a.goods_id') // 错误

J'ai déjà écrit ceci, et c'est un énorme problème.

En utilisant un framework, vous ne pouvez pas écrire SQL de manière flexible. Cependant, avoir une compréhension approfondie de SQL vous aidera également à utiliser le framework de manière flexible.

Méthode de débogage des instructions SQL.

echo M()->getLastSql();

Très pratique.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

PHP télécharge des fichiers Excel pour importer des données dans la base de données MySQL

ajouts à la base de données de la version thinkphp3.2.3 , suppressions et modifications Vérifier le code d'implémentation

thinkPHP5 implémente la méthode d'ajout de contenu à la base de données

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