Dans thinkphp5, la méthode save() est utilisée pour ajouter un enregistrement à la table de données spécifiée. Cette méthode ne peut ajouter qu'un seul nouvel enregistrement à la table à la fois. L'ajout de plusieurs enregistrements peut être répété. -> save(array)" ou "objet modèle->
L'environnement d'exploitation de cet article : système Windows 10, ThinkPHP version 5, ordinateur Dell G3.
Ajouter une seule donnée : méthode save()
Fonction : Ajouter un enregistrement à la table de données spécifiée
Cette méthode ne peut ajouter qu'un seul nouvel enregistrement à la table à la fois. temps et ajouter plusieurs enregistrements. Elle peut être exécutée à plusieurs reprises, mais le saveAll() que nous apprendrons plus tard peut ajouter plusieurs éléments à la fois
Code source : /thinkphp/library/think/Model.php
La méthode de sauvegarde en est une. des méthodes les plus complexes de la classe Model, car la méthode save porte plusieurs chapeaux, non seulement pour les nouveaux ajouts, mais également pour la mise à jour des données.
Syntaxe de base :
Format 1 : écrivez les données directement dans les paramètres de la méthode de sauvegarde
模型对象 -> save(数组);
Format 2 : générez d'abord l'objet de données, puis utilisez la méthode de sauvegarde pour l'écrire directement dans la table
模型对象 -> data(数组) -> save();
Les deux deux syntaxes peuvent compléter les nouvelles opérations d'ajout. Mais la deuxième structure grammaticale est plus claire, plus lisible et plus pratique à modifier.
Méthode<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index(){ //1.创建数据:与表中字段对应 $data = []; $data['name'] = '周星星'; $data['sex'] = 1; $data['age'] = 39; $data['salary'] = 3500; $data['dept'] = 3; $data['hiredate'] = date('Y-m-d',time()); //2.创建数据对象 $model = (new Staff())-> data($data); //3.获取新增操作执行前:数据对象原始数据 $data_before = $model -> getData(); //4.查看新增操作执行前的数据对象:$model echo '查看新增操作执行前的数据对象:<br />'; dump($data_before); //5.将数据对象原始数据写入数据表中,返回影响记录数 //allowField(true)过滤post数组中的非数据表字段数据 $affected = $model -> allowField(true) -> save(); //6.获取新增操作执行后:数据对象原始数据 $data_after = $model -> getData(); //7.查看新增操作执行后的数据对象:$model echo '查看新增操作执行后的数据对象:<br />'; dump($data_after); //8. 获取新增记录的主键id,等价于: $model -> id $insert_ID = $affected ? $data_after['id'] : null; //6.验证是否新增成功 echo $affected ? '新增成功!新记录主键id是:'.$insert_ID : '新增失败!'; } }
save()
class Index { public function index(){ //1.创建数据:与表中字段对应 $data = []; $data['name'] = '周星星'; $data['sex'] = 1; $data['age'] = 39; $data['salary'] = 3500; $data['dept'] = 3; $data['hiredate'] = date('Y-m-d',time()); $model = new Staff(); $affected = $model -> allowField(true) -> save($data); $data['name'] = '周星星'; $data['sex'] = 1; $data['age'] = 39; $data['salary'] = 3000; $data['dept'] = 3; $data['hiredate'] = date('Y-m-d',time()); $affected = $model -> allowField(true) -> setAttr('id',null) //清空ID -> isUpdate(false) //显式指定新增 -> save($data);
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!