在thinkphp5中,save()方法用于向指定數據表中添加一條記錄,該方法每次僅能向表中添加一條新記錄,添加多條可重復執行,語法為“模型對象 -> save(數組)”或“模型對象 -> data(數組) -> save();”。
本文操作環境:Windows10系統、thinkphp5版、Dell G3電腦。
thinkphp5中save方法怎么用
新增單條數據:save( )方法
功能:向指定數據表中添加一條記錄
該方法每次僅能向表中添加一條新記錄,添加多條可重復執行,不過后面要學習的saveAll()可一次性添加多條
立即學習“PHP免費學習筆記(深入)”;
源碼:/thinkphp/library/think/Model.php
save方法是Model類中較復雜的方法之一,因為save方法身兼多職,不僅用于新增,還可以用于更新數據。
基本語法:
格式1:將數據直接寫在save方法參數中
模型對象?->?save(數組);
格式2:先生成數據對象,然后用save方法直接寫入表中
模型對象?->?data(數組)?->?save();
這二種語法都可以完成新增操作。但是第二種語法結構更加清晰,可讀性好,修改更加方便。
<?php namespace appindexcontroller; use appindexmodelStaff; 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);
推薦學習:《PHP視頻教程》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦