Maison >développement back-end >tutoriel php >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
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);
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);
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. 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();
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();
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();
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();
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();
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();
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 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
11.getField()
Obtenir une valeur de champ
$User = M("User"); // 实例化User对象 // 获取ID为3的用户的昵称 $nickname = $User->where('id=3')->getField('nickname');
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);
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);
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 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');
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(); // 获取总的记录数
J’ai déjà écrit comme ça, et c’est un gros problème.
field('b.name', 'b.price', 'b.oprice', 'b.logoimg', 'a.goods_id') // 错误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();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