Un résumé sur l'ajout, la suppression, la modification et l'archivage dans ThinkPHP

jacklove
Libérer: 2023-04-01 08:52:02
original
1553 Les gens l'ont consulté

Aujourd'hui, j'ai appris quelques opérations d'ajout, de suppression, de modification et d'archivage dans ThinkPHP. J'ai l'impression que l'écriture est assez claire. Apprenons-le ensemble !

1. Opération de création

Utilisez la méthode add dans ThinkPHP pour ajouter des données à la base de données.

La méthode d'utilisation est la suivante :

$User = M("User"); // 实例化User对象
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->add($data);
Copier après la connexion

Ou utiliser les données méthode pour fonctionner en continu

$User->data($data)->add();
Copier après la connexion

Si l'objet de données a été créé avant l'ajout (par exemple, en utilisant la méthode create ou data), la méthode add n'a pas besoin de transmettre des données .

Exemple d'utilisation de la méthode create :

$User = M("User"); // 实例化User对象
// 根据表单提交的POST数据创建数据对象
$User->create();
$User->add(); // 根据条件保存修改的数据
Copier après la connexion

Si votre clé primaire est Type de croissance automatique, et si les données sont insérées avec succès, la valeur de retour de la méthode Add est la dernière valeur de clé primaire insérée, qui peut être obtenue directement.

2. Lecture des données

Il existe de nombreuses façons de lire des données dans ThinkPHP, généralement divisées en lecture de données et lire des ensembles de données.

Pour lire l'ensemble de données, utilisez la méthode findall ou select (les méthodes findall et select sont équivalentes) :

$User = M("User"); // 实例化User对象
// 查找status值为1的用户数据以创建时间排序返回10条数据
$list = $User->where('status=1')->order('create_time')->limit(10)->select();
Copier après la connexion

La valeur de retour de la méthode select est un tableau à deux dimensions. Si aucun résultat n'est trouvé, un tableau vide est renvoyé. En combinaison avec les méthodes de fonctionnement cohérentes mentionnées ci-dessus, des requêtes de données complexes peuvent être réalisées. La méthode cohérente la plus complexe devrait être l'utilisation de la méthode where Parce que cette partie implique beaucoup de contenu, nous l'utiliserons en détail dans la partie langage de requête sur la façon d'assembler. conditions de requête. La requête de base n'implique pas la partie requête associée pour le moment, mais utilise le modèle associé pour effectuer des opérations sur les données. Pour cette partie, veuillez vous référer à la partie modèle associée.

Pour lire les données, utilisez la méthode de recherche :

L'opération de lecture des données est en fait similaire à celle de l'ensemble de données. les méthodes d'opération cohérentes disponibles. Elles peuvent également être utilisées dans la méthode find. La différence est que la méthode find ne renverra qu'un seul enregistrement, donc la méthode limit n'est pas valide pour l'opération de requête find.

$User = M("User"); // 实例化User对象
// 查找status值为1name值为think的用户数据
$User->where('status=1 AND name="think"
 ')->find();
Copier après la connexion

Même s'il existe plusieurs données qui remplissent la condition, la méthode de recherche ne renverra que la première enregistrer.

Si vous souhaitez lire la valeur d'un champ, vous pouvez utiliser la méthode getField, par exemple :

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

Lorsqu'il n'y a qu'un seul champ, renvoie toujours une valeur.

Si plusieurs champs sont transmis, un tableau associatif peut être renvoyé :

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

La liste renvoyée est un tableau, le nom de la clé est l'identifiant de l'utilisateur et la valeur de la clé est le surnom de l'utilisateur.

3. Mettre à jour les données

Utilisez la méthode save dans ThinkPHP pour mettre à jour la base de données. , et L'utilisation d'opérations cohérentes est également prise en charge.

$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->where('id=5')->save($data); // 根据条件保存修改的数据
Copier après la connexion

Afin d'assurer la sécurité de la base de données et d'éviter les erreurs lors de la mise à jour de l'ensemble de la table de données, s'il n'y a pas conditions de mise à jour, l'objet de données lui-même le fera également. S'il ne contient pas le champ de clé primaire, la méthode save ne mettra à jour aucun enregistrement de la base de données.

Par conséquent, le code suivant ne modifiera aucun enregistrement dans la base de données

$User->save($data);

除非使用下面的方式:

$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
Copier après la connexion

$data['id'] = 5;
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->save($data); // 根据条件保存修改的数据
Copier après la connexion

如果id是数据表的主键的话,系统自动会把主键的值作为更新条件来更新其他字段的值。

还有一种方法是通过create或者data方法创建要更新的数据对象,然后进行保存操作,这样save方法的参数可以不需要传入。

$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->where('id=5')->data($data)->save(); // 根据条件保存修改的数据
Copier après la connexion

使用create方法的例子:

$User = M("User"); // 实例化User对象
// 根据表单提交的POST数据创建数据对象
$User->create();
$User->save(); //根据条件保存要修改的数据
Copier après la connexion

上面的情况,表单必须包含一个以主键为名称的隐藏域,才能完成保存操作。

如果只是更新个别字段的值,可以使用setField方法:

$User = M("User"); // 实例化User对象
// 更改用户的name值
$User-> where('id=5')->setField('name','ThinkPHP');
setField方法支持同时更新多个字段,只需要传入数组即可,例如:
$User = M("User"); // 实例化User对象
// 更改用户的name和email的值
$User-> where('id=5')->setField(array('name','email'),array('ThinkPHP','ThinkPHP@gmail.com'));
Copier après la connexion

而对于统计字段(通常指的是数字类型)的更新,系统还提供了setIncsetDec方法:

$User = M("User"); // 实例化User对象
$User->setInc('score','id=5',3);// 用户的积分加3
$User->setInc('score','id=5'); // 用户的积分加1
$User->setDec('score','id=5',5);// 用户的积分减5
$User->setDec('score','id=5'); // 用户的积分减1
Copier après la connexion

四、删除数据

在ThinkPHP使用delete方法删除数据库的记录。同样可以使用连贯操作进行删除操作。

$User = M("User"); // 实例化User对象
$User->where('id=5')->delete(); // 删除id为5的用户数据
$User->where('status=0')->delete(); // 删除所有状态为0的用户数据
Copier après la connexion

delete方法可以用于删除单个或者多个数据,主要取决于删除条件,也就是where方法的参数,也可以用orderlimit方法来限制要删除的个数,例如:

// 删除所有状态为0的5个用户数据按照创建时间排序
$User->where('status=0')->order('create_time')->limit('5')->delete();
Copier après la connexion

本文讲解了关于ThinkPHP的增、删、改、查 的一些总结,更多相关内容请关注php中文网。

相关推荐:

where方法的应用讲解

ThinkPHP 双重循环遍历输出 的相关内容

ThinkPHP5快速入门 方法的介绍

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!

É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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!