国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

Laravel框架學習筆記之批量更新數據功能

2024-05-05 00:09:21
字體:
來源:轉載
供稿:網友

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

前言

上周公司的比賽項目以淚奔結束...一臺2核4G的VPS完全蹦了..集體被老大叼杠。下個月的比賽又要開始了,所以現在抓緊時間升級服務器,優化代碼與SQL,剛看到排名那有1000多條更新語句,太受不了了,所以在google找了下資源,找到了批量更新數據的方法,記錄一下。

代碼

//from https://github.com/mavinoo/laravelBatchstatic 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);}

測試代碼如下

$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);

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

希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 青州市| 眉山市| 梧州市| 淅川县| 阿克陶县| 方城县| 徐汇区| 星子县| 马山县| 宜兰市| 介休市| 油尖旺区| 成都市| 渭南市| 如东县| 宣武区| 图木舒克市| 平果县| 都江堰市| 昭觉县| 项城市| 新河县| 阿巴嘎旗| 安阳县| 曲水县| 霍林郭勒市| 南涧| 铁岭县| 泽库县| 延吉市| 龙口市| 东丽区| 翁源县| 中方县| 东台市| 东乡族自治县| 桑日县| 三原县| 延川县| 丰顺县| 淮北市|