主頁(yè) > 知識(shí)庫(kù) > Laravel框架學(xué)習(xí)筆記之批量更新數(shù)據(jù)功能

Laravel框架學(xué)習(xí)筆記之批量更新數(shù)據(jù)功能

熱門標(biāo)簽:外呼系統(tǒng)能給企業(yè)帶來(lái)哪些好處 廣東廣州在怎么申請(qǐng)400電話 咸寧銷售電銷機(jī)器人系統(tǒng) 電銷機(jī)器人問(wèn)門薩維品牌my 百度地圖怎樣標(biāo)注圖標(biāo) 余姚電話機(jī)器人 400電話蘭州申請(qǐng)請(qǐng) 百度地圖標(biāo)注偏差 開(kāi)發(fā)地圖標(biāo)注類網(wǎng)站

本文實(shí)例講述了Laravel框架批量更新數(shù)據(jù)功能。分享給大家供大家參考,具體如下:

前言

上周公司的比賽項(xiàng)目以淚奔結(jié)束...一臺(tái)2核4G的VPS完全蹦了..集體被老大叼杠。下個(gè)月的比賽又要開(kāi)始了,所以現(xiàn)在抓緊時(shí)間升級(jí)服務(wù)器,優(yōu)化代碼與SQL,剛看到排名那有1000多條更新語(yǔ)句,太受不了了,所以在google找了下資源,找到了批量更新數(shù)據(jù)的方法,記錄一下。

代碼

//from https://github.com/mavinoo/laravelBatch
static function batchUpdate($model, array $values, $index = null){
  $final = [];
  $ids = [];
  if (!count($values)) {
    return false;
  }
  if (!isset($index) || empty($index)) {
    $index = $model->getKeyName();
  }
  foreach ($values as $key => $val) {
    $ids[] = $val[$index];
    foreach (array_keys($val) as $field) {
      if ($field !== $index) {
        $value = (is_null($val[$field]) ? 'NULL' : '"' . self::mysql_escape($val[$field]) . '"');
        $final[$field][] = 'WHEN `' . $index . '` = "' . $val[$index] . '" THEN ' . $value . ' ';
      }
    }
  }
  $cases = '';
  foreach ($final as $k => $v) {
    $cases .= '`' . $k . '` = (CASE ' . implode("\n", $v) . "\n"
      . 'ELSE `' . $k . '` END), ';
  }
  $full_table     =  $model->getConnection()->getTablePrefix() . $model->getTable();
  $query = "UPDATE `" .$full_table . "` SET " . substr($cases, 0, -2) . " WHERE `$index` IN(" . '"' . implode('","', $ids) . '"' . ");";
  \DB::update($query);
  #return $this->db->connection($this->getConnectionName($table))->update($query);
}

測(cè)試代碼如下

$userInstance = new User();
$value = [
  [
    'id' => 2,
    'contest_name' => 'A1',
    'project_name' => 'P1'
  ] ,
  [
    'id' => 3,
    'contest_name' => 'A2',
    'project_name' => 'P2'
  ] ,
];
$index = 'id';
Utils::batchUpdate($userInstance, $value, $index);

記錄完趕緊干活去....

更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • Laravel 批量更新多條數(shù)據(jù)的示例
  • laravel實(shí)現(xiàn)批量更新多條記錄的方法示例
  • Laravel實(shí)現(xiàn)批量更新多條數(shù)據(jù)

標(biāo)簽:巴彥淖爾 麗江 銅陵 十堰 重慶 臨沂 衡陽(yáng) 鷹潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Laravel框架學(xué)習(xí)筆記之批量更新數(shù)據(jù)功能》,本文關(guān)鍵詞  Laravel,框架,學(xué)習(xí),筆記,之,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Laravel框架學(xué)習(xí)筆記之批量更新數(shù)據(jù)功能》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Laravel框架學(xué)習(xí)筆記之批量更新數(shù)據(jù)功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章