Explication détaillée des exemples de méthodes d'ajout, de suppression, de modification et d'opération de requête de base de données thinkPHP

高洛峰
Libérer: 2023-03-04 18:10:01
original
1459 Les gens l'ont consulté

L'exemple de cet article décrit la méthode opérationnelle d'ajout, de suppression, de modification et d'interrogation de la base de données thinkPHP. 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);
Copier après la connexion


2. Instancié pour la table, le nom original 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);
Copier après la connexion


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);
Copier après la connexion


3. Instruction 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();
Copier après la connexion


4. Instruction de modification encapsulée

$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();
Copier après la connexion


C'est effectivement très pratique, mais à part la commodité, n'oubliez pas le SQL original, le SQL original, qui est le plus intéressant.

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();
Copier après la connexion


find obtient une donnée, find(1) obtient les données avec l'identifiant 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();
Copier après la connexion


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
Copier après la connexion


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();
Copier après la connexion


Il existe deux manières de créer une chaîne et un tableau. La troisième 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();
Copier après la connexion


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();
Copier après la connexion


La méthode LEFT JOIN est utilisée par défaut. Si vous devez utiliser d'autres méthodes JOIN, vous pouvez la modifier. au second.

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 des méthodes chaîne.

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
Copier après la connexion


11.getField()

Obtenir une valeur de champ

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


Le pseudo 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 une colonne de champ (plusieurs résultats) qui répond aux exigences, vous pouvez utiliser :

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


Le deuxième paramètre est passé en vrai, 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);
Copier après la connexion


Obtenir 2 listes de champs

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


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

Obtenir plusieurs listes de champs

$result = $User->where('status=1')->getField('id,account,nickname');
Copier après la connexion


Si plus de 2 noms de champs sont transmis, un tableau à deux dimensions sera renvoyé (similaire au méthode select La valeur de retour de Puisque deux tables sont combinées, la méthode table est utilisée pour redéfinir le nom de la table et préfixer les conditions et paramètres correspondants. a. Ou b.

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

$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(); // 获取总的记录数
Copier après la connexion

J’ai déjà écrit comme ça, et c’est un gros problème.

Si vous utilisez un framework, vous ne pouvez pas écrire du SQL de manière flexible. Cependant, avoir une compréhension approfondie de SQL est également propice à une utilisation flexible du framework.

Méthode de débogage des instructions SQL.

field('b.name', 'b.price', 'b.oprice', 'b.logoimg', 'a.goods_id') // 错误
Copier après la connexion
J'espère que cet article sera utile à la conception de programmes PHP de chacun basés sur le framework ThinkPHP.

Pour des exemples plus détaillés de méthodes de fonctionnement de la base de données thinkPHP pour l'ajout, la suppression, la modification et l'interrogation, veuillez faire attention au site Web PHP chinois pour les articles connexes !

Articles associés :

echo M()->getLastSql();
Copier après la connexion
Demandez des conseils sur la façon d'écrire vos propres fonctions et classes dans thinkphp, où les placer et comment les appeler

thinkPHP est un exemple de code simple pour appeler des fonctions et des méthodes de bibliothèque de classes

Le framework ThinkPHP3.2 utilise addAll() pour insérer par lots une méthode de données à partager

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal