溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

thinkphp5中save方法如何用

發(fā)布時間:2022-02-18 15:48:02 來源:億速云 閱讀:917 作者:iii 欄目:編程語言

本文小編為大家詳細介紹“thinkphp5中save方法如何用”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“thinkphp5中save方法如何用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

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

本文操作環(huán)境:Windows10系統(tǒng)、ThinkPHP5版、Dell G3電腦。

thinkphp5中save方法怎么用

新增單條數(shù)據(jù):save( )方法

功能:向指定數(shù)據(jù)表中添加一條記錄

該方法每次僅能向表中添加一條新記錄,添加多條可重復(fù)執(zhí)行,不過后面要學(xué)習(xí)的saveAll()可一次性添加多條

save方法是Model類中較復(fù)雜的方法之一,因為save方法身兼多職,不僅用于新增,還可以用于更新數(shù)據(jù)。

基本語法:

格式1:將數(shù)據(jù)直接寫在save方法參數(shù)中

模型對象 -> save(數(shù)組);

格式2:先生成數(shù)據(jù)對象,然后用save方法直接寫入表中

模型對象 -> data(數(shù)組) -> save();

這二種語法都可以完成新增操作。但是第二種語法結(jié)構(gòu)更加清晰,可讀性好,修改更加方便。

<?php
namespace app\index\controller;
use app\index\model\Staff;
class Index {
  public function index(){
  //1.創(chuàng)建數(shù)據(jù):與表中字段對應(yīng)
  $data = [];
  $data['name'] = '周星星';
  $data['sex'] = 1;
  $data['age'] = 39;
  $data['salary'] = 3500;
  $data['dept'] = 3;
  $data['hiredate'] = date('Y-m-d',time());
  //2.創(chuàng)建數(shù)據(jù)對象
  $model = (new Staff())-> data($data);
  //3.獲取新增操作執(zhí)行前:數(shù)據(jù)對象原始數(shù)據(jù)
  $data_before = $model -> getData();
  //4.查看新增操作執(zhí)行前的數(shù)據(jù)對象:$model
  echo '查看新增操作執(zhí)行前的數(shù)據(jù)對象:<br />';
  dump($data_before);
  //5.將數(shù)據(jù)對象原始數(shù)據(jù)寫入數(shù)據(jù)表中,返回影響記錄數(shù)
//allowField(true)過濾post數(shù)組中的非數(shù)據(jù)表字段數(shù)據(jù)
  $affected = $model -> allowField(true) -> save(); 
  //6.獲取新增操作執(zhí)行后:數(shù)據(jù)對象原始數(shù)據(jù)
  $data_after = $model -> getData();
  //7.查看新增操作執(zhí)行后的數(shù)據(jù)對象:$model
  echo '查看新增操作執(zhí)行后的數(shù)據(jù)對象:<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.創(chuàng)建數(shù)據(jù):與表中字段對應(yīng)
  $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);

讀到這里,這篇“thinkphp5中save方法如何用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI