thinkphp5中save方法怎么用

在thinkphp5中,save()方法用于向指定數據表中添加一條記錄,該方法每次僅能向表中添加一條新記錄,添加多條可重復執行,語法為“模型對象 -> save(數組)”或“模型對象 -> data(數組) -> save();”。

thinkphp5中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[&#39;name&#39;] = &#39;周星星&#39;;   $data[&#39;sex&#39;] = 1;   $data[&#39;age&#39;] = 39;   $data[&#39;salary&#39;] = 3500;   $data[&#39;dept&#39;] = 3;   $data[&#39;hiredate&#39;] = date(&#39;Y-m-d&#39;,time());   //2.創建數據對象   $model = (new Staff())->?data($data); ??//3.獲取新增操作執行前:數據對象原始數據 ??$data_before?=?$model?-&gt;?getData(); ??//4.查看新增操作執行前的數據對象:$model ??echo?'查看新增操作執行前的數據對象:<br>'; ??dump($data_before); ??//5.將數據對象原始數據寫入數據表中,返回影響記錄數 //allowField(true)過濾post數組中的非數據表字段數據 ??$affected?=?$model?-&gt;?allowField(true)?-&gt;?save();? ??//6.獲取新增操作執行后:數據對象原始數據 ??$data_after?=?$model?-&gt;?getData(); ??//7.查看新增操作執行后的數據對象:$model ??echo?'查看新增操作執行后的數據對象:<br>'; ??dump($data_after); ??//8.?獲取新增記錄的主鍵id,等價于:?$model?-&gt;?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?-&gt;?allowField(true)?-&gt;?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?-&gt;?allowField(true) ???????????????????????????-&gt;?setAttr('id',null)??//清空ID ???????????????????????????-&gt;?isUpdate(false)?????//顯式指定新增 ???????????????????????????-&gt;?save($data);

推薦學習:《PHP視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享