第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

更新 laravel SQL 表,數(shù)值超出范圍:

更新 laravel SQL 表,數(shù)值超出范圍:

PHP
Qyouu 2023-08-19 14:30:07
我有一個正在接收傳感器數(shù)據(jù)的應(yīng)用程序。作為說明,假設(shè)預(yù)期范圍在 0.01 到 10 之間。在這種情況下,在遷移中我可能會遇到類似的情況:$table->float('example',5, 2)這樣我就能夠處理超出預(yù)期范圍的數(shù)量級。然而,傳感器可能會出現(xiàn)故障并發(fā)送 10 000 個值。由于傳感器正在發(fā)送一系列值,因此可能并非所有數(shù)據(jù)都不正確,因此最好仍將數(shù)據(jù)寫入 DB。對于初始插入,我使用下面的代碼,該代碼按預(yù)期工作:DB::table($tableName)->insertOrIgnore($insert_array);然而,在某些情況下,傳感器可以重新發(fā)送數(shù)據(jù),在這種情況下需要更新記錄。超出范圍的值有可能保留在數(shù)組中,在這種情況下,下面的更新語句將拋出超出范圍的錯誤:DB::table($tableName)->where('$some_id','=', $another_id)->update($insert_array);我無法找到類似于“updateorignore”功能的東西。處理更新此記錄的最佳方法是什么?請注意,我不能簡單地將其放入 try catch 中,因為該表將是某些子表的父表,并且忽略它會導(dǎo)致一些孤立的條目。
查看完整描述

2 回答

?
侃侃無極

TA貢獻2051條經(jīng)驗 獲得超10個贊

您是否有一些獨特的數(shù)據(jù)點將記錄連接在一起,例如時間戳或數(shù)據(jù)來源的 ID?如果是這樣,您可以使用updateOrInsert


DB::table($tableName)

? ? ->updateOrInsert(

? ? ? ? ['remote_id' => $insert_array['remote_id'],

? ? ? ? [

? ? ? ? ? ?'example_field_1' => $insert_array['example_field_1'],

? ? ? ? ? ?'example_field_2' => $insert_array['example_field_2'],

? ? ? ? ]

? ? );

查看完整回答
反對 回復(fù) 2023-08-19
?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

以下是解決該問題的一些示例代碼:


                $values = array();

                //set up values for binding to prevent SQL injection

                foreach ($insert_array as $item) {

                        $values[] = '?'; 

                }


                //array values need to be in a "flat array"

                $flat_values = implode(", ", $values);

                

                //add in separators ` to column names

                $columns = implode("`, `",array_keys($insert_array));


                //write sql statement

                $sql = "INSERT IGNORE INTO `example_table` (`$columns`) VALUES 

                ($flat_values) ON DUPLICATE KEY UPDATE id = '$id'";

                DB::insert($sql, array_values($insert_array));

            }


查看完整回答
反對 回復(fù) 2023-08-19
  • 2 回答
  • 0 關(guān)注
  • 189 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號