Table des matières
主页面
添加数据
修改数据
Maison développement back-end tutoriel php thinkphp implémente l'ajout, la suppression, la modification et la requête de base

thinkphp implémente l'ajout, la suppression, la modification et la requête de base

Feb 10, 2017 pm 04:52 PM
thinkphp 增删改查

ThinkPHP fournit des méthodes d'exploitation des données flexibles et pratiques, qui réalisent non seulement les quatre opérations de base des opérations de base de données (CURD) : La mise en œuvre de création, de lecture, de mise à jour et de suppression intègre également de nombreuses méthodes pratiques d'exploitation des données. Ensuite, nous apprendrons ensemble ces méthodes d'exploitation de base et préparerons un exemple pour que chacun puisse approfondir sa compréhension à la fin.

Nouvelles données

  // 实例化一个User模型对象    
  $User = new UserModel();    
  // 然后给数据对象赋值    
  $User->name = 'ThinkPHP';    
  $User->email = 'ThinkPHP@gmail.com';    
  // 然后就可以保存新建的User对象了    
  $User->add();    
  //如果需要锁实例化模型对象的时候传入数据,可以使用    
    $data['name'] = 'ThinkPHP';    
    $data['email'] = 'ThinkPHP@gmail.com';    
    $User = new UserModel($data);    
    $User->add();    
    // 或者直接在add方法传入要新建的数据    
    $data['name'] = 'ThinkPHP';    
    $data['email'] = 'ThinkPHP@gmail.com';    
    $User = new UserModel();    
    $User->add($data);
Copier après la connexion


En général, il est peu probable que les objets de données de l'application soient écrits via une affectation manuelle, mais il existe un processus de création d'objets de données. ThinkPHP fournit une méthode create pour créer des objets de données, puis effectuer d'autres opérations d'ajout ou de modification.


$User = D("User");    
$User->create(); // 创建User数据对象,默认通过表单提交的数据进行创建    
$User->add(); // 新增表单提交的数据
Copier après la connexion


<🎜 La méthode >Create prend en charge la création d'objets de données par d'autres moyens, par exemple à partir d'autres objets de données ou de tableaux, etc.


$data[&#39;name&#39;] = &#39;ThinkPHP&#39;;    
$data[&#39;email&#39;] = &#39;ThinkPHP@gmail.com&#39;;    
$User->create($data);    
 // 从User数据对象创建新的Member数据对象    
$Member = D("Member");    
$Member->create($User);
Copier après la connexion

支持新增多条记录


$User = new UserModel();    
$data[0][&#39;name&#39;] = &#39;ThinkPHP&#39;;    
$data[0][&#39;email&#39;] = &#39;ThinkPHP@gmail.com&#39;;    
$data[1][&#39;name&#39;] = &#39;流年&#39;;    
 $data[1][&#39;email&#39;] = &#39;liu21st@gmail.com&#39;;    
$User->addAll($data);
Copier après la connexion


Sous la base de données MySql, une instruction SQL sera automatiquement utilisée pour insérer plusieurs données.

Requête des enregistrements
Lire la base de données I Je pense que l'enregistrement est la chose la plus intéressante dans les opérations de base de données. Quiconque a écrit une base de données texte sait qu'il n'est pas difficile de sauvegarder et de supprimer des données (ce n'est rien de plus qu'une question de standardisation et d'efficacité). être recherché de diverses manières les données requises. ThinkPHPGrâce à divers efforts, les opérations de requête de base de données sont devenues faciles et ThinkPHP est devenue riche en contenu.
ThinkPHP
Il existe un accord très clair sur le fait que les méthodes de requête de données uniques et de requête de données multiples sont distinctes, ou vous pouvez penser que parfois vous ne savez pas quoi interroger . Que les données soient uniques ou multiples, mais une chose est claire, devez-vous renvoyer une donnée ou souhaitez-vous renvoyer un ensemble de données. Étant donné que les méthodes de fonctionnement pour les deux types de données renvoyées sont complètement différentes, quelle que soit la méthode renvoyée, nous pouvons opérer directement dans l'objet modèle, et bien sûr, il peut également être transmis sous forme de données aux variables dont vous avez besoin.
Prenons d'abord l'exemple le plus simple. Si nous voulons interroger un enregistrement utilisateur dont la clé primaire est 8, nous pouvons. Utilisez certaines des méthodes ci-dessous :


 $User->find(8);
Copier après la connexion


这个作为查询语言来说是最为直观的,如果查询成功,查询的结果直接保存在当前的数据对象中,在进行下一次查询操作之前,我们都可以提取,例如获取查询的结果数据:


$name = $User->name;    
$email = $User->email;
Copier après la connexion


遍历查询到的数据对象属性


 foreach ($User as $key=>$val){    
  echo($key.&#39;:&#39;.$val);    
  }
Copier après la connexion


// 或者进行相关的数据更改和保存操作
也可以用变量保存下来以便随时使用。

$user = $User->find(8);
Copier après la connexion

对于上面的查询条件,我们还可以使用getById来完成相同的查询

 $User->getById(8);
Copier après la connexion

需要注意的是,对于find方法来说,即使查询结果有多条记录,也只会返回符合条件的第一条记录,如果要返回符合要求的所有记录,请使用findAll方法。


  // 查询主键为1、3、8的记录集     
  $User->findAll(&#39;1,3,8&#39;);     
   // 遍历数据列表    
    foreach ($User as $vo){dump($vo->name);    
    }
Copier après la connexion

更新记录
了解了查询记录后,更新操作就显得非常简单了。

  // 还可以使用下面的方式更新
  $User->find(1); // 查找主键为1的数据    
  $User->name = &#39;TOPThink&#39;; // 修改数据对象    
  $User->save(); // 保存当前数据对象    
  $User->score = &#39;(score+1)&#39;; // 对用户的积分加1    
  $User->save();
Copier après la connexion


如果不是使用数据对象的方式来保存,可以传入要保存的数据和条件

 $data[&#39;id&#39;] = 1;   
 $data[&#39;name&#39;] = &#39;TopThink&#39;;   
 $User->save($data);
Copier après la connexion

除了save方法外,你还可以使用setField方法来更新特定字段的值,例如:

 $User->setField(&#39;name&#39;,&#39;TopThink&#39;,&#39;id=1&#39;);
Copier après la connexion

同样可以支持对字段的操作

 $User->setField(&#39;score&#39;,&#39;(score+1)&#39;,&#39;id=1&#39;);    
 // 或者改成下面的    
 $User->setInc(&#39;score&#39;,&#39;id=1&#39;);
Copier après la connexion

删除记录

如果你的主键是自动增长类型,不需要传入主键的值就可以新建数据,并且如果插入数据成功的话,Add方法的返回值就是最新插入的主键值,可以直接获取。

 $User->find(2);    
 $User->delete(); // 删除查找到的记录    
 $User->delete(&#39;5,6&#39;); // 删除主键为5、6的数据    
 $User->deleteAll(); // 删除查询出来的所有数据
Copier après la connexion

看完上面的代码,我们就来写个实战的例子加深下。

数据显示页面:MainController.class.php中的方法

<?php
namespace Home\Controller;
use Think\Controller;
class MainController extends Controller
{    

    //例题:数据的增删改
    //显示所有数据:
    function ShowInfo()
    {
        $model=D("Info");
        $attr=$model->field("info.code as infocode,info.name as infoname,info.sex,nation.name as nationname,info.birthday")->join("nation on info.nation=nation.code")->select();
        $this->assign("shuju",$attr);
        $this->display();
        
    }
    //删除数据:
    function ShanChu($code)
    {
        $model=D("Info");
        $r=$model->delete($code);
        if($r)
        {
            $this->success("删除成功",U("ShowInfo"));
        }
        else
        {        
            $this->error("删除失败");
        }
        
    }
    //添加数据:
    function TianJia()
    {
        if(empty($_POST))
        {
            $model=D("Nation");
            $attr=$model->select();
            $this->assign("shuju",$attr);
            $this->display();
        }
        else
        {
            $model=D("Info");
            $model->create();//自动收集表单数据入库
            $model->Sex=$_POST["Sex"]=="男"?true:false;
            $r=$model->add();
            if($r)
            {
                $this->success("添加成功!","Tianjia",3);
            }
            else
            {
                $this->error("添加失败!","Tianjia",3);
            }
        }
    }
    //修改数据:
    function XiuGai($code)
    {
        $model=D("info");
        $modeln=D("nation");
        if(empty($_POST))
        {
            $attr=$model->find($code);
            $attrn=$modeln->select();
            
            $this->assign("shuju",$attr);
            $this->assign("shujun",$attrn);
            $this->display();
        }
        else
        {
            
            $model->create();
            $model->Sex=$_POST["Sex"]=="男"?true:false;
            $r=$model->save();
            if($r)
            {
                $this->success("修改成功",U("Showinfo"));    
            }
            else
            {
                $this->error("修改失败!");
            }
            
        }
    }
}
Copier après la connexion

模板的数据显示:ShowInfo.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>主页面</title>
</head>

<body>
<h2 id="主页面">主页面</h2>
<table width="70%" cellpadding="0" cellspacing="0" border="1">
<tr>
<td>代号</td>
<td>姓名</td>
<td>性别</td>
<td>民族</td>
<td>生日</td>
<td>操作</td>
</tr>

<foreach name="shuju" item="v">
<tr>
<td><{$v.infocode}></td>
<td><{$v.infoname}></td>
<td><{$v["sex"]?"男":"女"}></td>
<td><{$v.nationname}></td>
<td><{$v.birthday}></td>
<td><a href="__CONTROLLER__/XiuGai/code/<{$v.infocode}>">修改</a>  <a href="__CONTROLLER__/ShanChu/code/<{$v.infocode}>">删除</a></td>
</tr>
</foreach>
</table>
<a href="__CONTROLLER__/TianJia">添加数据</a>
</body>
</html>
Copier après la connexion

添加数据模板显示:Tianjia.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>添加数据</title>
</head>

<body>
<h1 id="添加数据">添加数据</h1>
<form action="/index.php/Article/edit" method="post">
<p>代号:<input type="text" name="Code" /></p>
<p>姓名:<input type="text" name="Name" /></p>
<p>性别:<input type="radio" name="Sex" value="男" />男  
          <input type="radio" name="Sex" value="女" />女
</p>
<p>民族:
<select name="Nation">
<foreach name="shuju" item="v">
<option value="<{$v.code}>"><{$v.name}></option>
</foreach>
</select>
</p>
<p>生日:<input type="text" name="Birthday" /></p>
<input type="submit" value="添加" />
</form>
<a href="__CONTROLLER__/ShowInfo">返回主页面</a>
</body>
</html>
Copier après la connexion

修改模板数据显示:Xiugai.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>修改数据</title>
</head>

<body>
<h1 id="修改数据">修改数据</h1>
<form action="/index.php/Article/edit/code/<{$shuju.code}>" method="post">
<input type="hidden" name="Code" value="<{$shuju.code}>" />
<p>姓名:<input type="text" name="Name" value="<{$shuju.name}>"/></p>
<p>性别:<input type="radio" name="Sex" value="男" <{$shuju["sex"]?"checked=&#39;checked&#39;":""}>/>男  
          <input type="radio" name="Sex" value="女" <{$shuju["sex"]?"":"checked=&#39;checked&#39;"}> />女
</p>
<p>民族:
<select name="Nation">
<foreach name="shujun" item="v">
    <if condition="$shuju[&#39;nation&#39;]==$v[&#39;code&#39;]">
        <option selected="selected" value="<{$v.code}>"><{$v.name}></option>
     <else/>
         <option value="<{$v.code}>"><{$v.name}></option>
     </if>
</foreach>
</select>
</p>
<p>生日:<input type="text" name="Birthday" value="<{$shuju.birthday}>" /></p>
<input type="submit" value="修改" />
</form>
<a href="__CONTROLLER__/ShowInfo">返回主页面</a>
</body>
</html>
Copier après la connexion


主页面:

thinkphp implémente lajout, la suppression, la modification et la requête de base

添加数据

thinkphp implémente lajout, la suppression, la modification et la requête de base

thinkphp implémente lajout, la suppression, la modification et la requête de base

Modifier les données :

thinkphp implémente lajout, la suppression, la modification et la requête de base

thinkphp implémente lajout, la suppression, la modification et la requête de base

Supprimer les données :

thinkphp implémente lajout, la suppression, la modification et la requête de base

Ci-dessus sont les méthodes de base et des exemples d'ajout, de suppression, de modification et d'archivage dans Thinkphp présentés par le site PHP chinois !


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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment exécuter le projet thinkphp Comment exécuter le projet thinkphp Apr 09, 2024 pm 05:33 PM

Pour exécuter le projet ThinkPHP, vous devez : installer Composer ; utiliser Composer pour créer le projet ; entrer dans le répertoire du projet et exécuter php bin/console serve ; visiter http://localhost:8000 pour afficher la page d'accueil.

Il existe plusieurs versions de thinkphp Il existe plusieurs versions de thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP dispose de plusieurs versions conçues pour différentes versions de PHP. Les versions majeures incluent 3.2, 5.0, 5.1 et 6.0, tandis que les versions mineures sont utilisées pour corriger les bogues et fournir de nouvelles fonctionnalités. La dernière version stable est ThinkPHP 6.0.16. Lorsque vous choisissez une version, tenez compte de la version PHP, des exigences en matière de fonctionnalités et du support de la communauté. Il est recommandé d'utiliser la dernière version stable pour de meilleures performances et une meilleure assistance.

Comment exécuter thinkphp Comment exécuter thinkphp Apr 09, 2024 pm 05:39 PM

Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

Comment le langage Go implémente-t-il les opérations d'ajout, de suppression, de modification et de requête de la base de données ? Comment le langage Go implémente-t-il les opérations d'ajout, de suppression, de modification et de requête de la base de données ? Mar 27, 2024 pm 09:39 PM

Le langage Go est un langage de programmation efficace, concis et facile à apprendre. Il est privilégié par les développeurs en raison de ses avantages en programmation simultanée et en programmation réseau. Dans le développement réel, les opérations de base de données font partie intégrante. Cet article explique comment utiliser le langage Go pour implémenter les opérations d'ajout, de suppression, de modification et de requête de base de données. Dans le langage Go, nous utilisons généralement des bibliothèques tierces pour faire fonctionner les bases de données, telles que les packages SQL couramment utilisés, gorm, etc. Ici, nous prenons le package SQL comme exemple pour présenter comment implémenter les opérations d'ajout, de suppression, de modification et de requête de la base de données. Supposons que nous utilisons une base de données MySQL.

Lequel est le meilleur, Laravel ou thinkphp ? Lequel est le meilleur, Laravel ou thinkphp ? Apr 09, 2024 pm 03:18 PM

Comparaison des performances des frameworks Laravel et ThinkPHP : ThinkPHP fonctionne généralement mieux que Laravel, en se concentrant sur l'optimisation et la mise en cache. Laravel fonctionne bien, mais pour les applications complexes, ThinkPHP peut être mieux adapté.

Comment installer thinkphp Comment installer thinkphp Apr 09, 2024 pm 05:42 PM

Étapes d'installation de ThinkPHP : Préparez les environnements PHP, Composer et MySQL. Créez des projets à l'aide de Composer. Installez le framework ThinkPHP et ses dépendances. Configurez la connexion à la base de données. Générez le code de l'application. Lancez l'application et visitez http://localhost:8000.

Suggestions de développement : Comment utiliser le framework ThinkPHP pour implémenter des tâches asynchrones Suggestions de développement : Comment utiliser le framework ThinkPHP pour implémenter des tâches asynchrones Nov 22, 2023 pm 12:01 PM

"Suggestions de développement : comment utiliser le framework ThinkPHP pour implémenter des tâches asynchrones" Avec le développement rapide de la technologie Internet, les applications Web ont des exigences de plus en plus élevées pour gérer un grand nombre de requêtes simultanées et une logique métier complexe. Afin d'améliorer les performances du système et l'expérience utilisateur, les développeurs envisagent souvent d'utiliser des tâches asynchrones pour effectuer certaines opérations chronophages, telles que l'envoi d'e-mails, le traitement des téléchargements de fichiers, la génération de rapports, etc. Dans le domaine de PHP, le framework ThinkPHP, en tant que framework de développement populaire, offre des moyens pratiques d'implémenter des tâches asynchrones.

Quelles sont les performances de thinkphp ? Quelles sont les performances de thinkphp ? Apr 09, 2024 pm 05:24 PM

ThinkPHP est un framework PHP hautes performances présentant des avantages tels que le mécanisme de mise en cache, l'optimisation du code, le traitement parallèle et l'optimisation des bases de données. Les tests de performances officiels montrent qu'il peut gérer plus de 10 000 requêtes par seconde et qu'il est largement utilisé dans les sites Web à grande échelle et les systèmes d'entreprise tels que JD.com et Ctrip dans les applications réelles.

See all articles