Maison >développement back-end >tutoriel php >Un résumé sur l'ajout, la suppression, la modification et l'archivage dans ThinkPHP

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

jacklove
jackloveoriginal
2018-06-15 10:39:231661parcourir

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);

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

$User->data($data)->add();

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(); // 根据条件保存修改的数据

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();

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();

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');

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');

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); // 根据条件保存修改的数据

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对象
// 要修改的数据对象属性赋值

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

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

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

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

使用create方法的例子:

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

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

如果只是更新个别字段的值,可以使用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'));

而对于统计字段(通常指的是数字类型)的更新,系统还提供了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

四、删除数据

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

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

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

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

本文讲解了关于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!

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