[英]how to do mysql UPDATE with multiple arrays
我有大量要更新的數據
當我執行插入操作時,我首先列出列,然后將每個數組放入具有值的列表中
如
$sql_query = "INSERT INTO customer (last_name, first_name, street_num, street_name, city, state, zip, phone,UUID,manager_UUID,points) VALUES(";
然后對於每個項目
$sql_query .= implode("),(", $rows);
$sql_query .= ")";
我想對UPDATING數據執行相同的模型,但是所有示例通常都是column = data,column = data
有辦法嗎
$sql_query = "UPDATE customer SET (last_name, first_name, street_num, street_name, city, state, zip, phone,UUID,manager_UUID,points) VALUES(";
然后對於每個項目
$sql_query .= implode("),(", $rows);
$sql_query .= ")";
然后在最后
$sql_query .= "WHERE column=condition";
更合適的解決方案是將字段名稱存儲在數組中,然后對其進行處理。
例:
$fieldString = 'last_name, first_name, street_num, street_name, city, state, zip, phone,UUID,manager_UUID,points';
$fieldList = explode(',',$fieldString);
//considering you have values stored in $rows array.
// Exit if $fieldlist does NOT match $rows
if (count($fieldList) != count($rows)){
die; //or handle exception
}
// INSERT statement:
$sql_query = 'INSERT INTO customer ('.implode(',',$fieldList).)' VALUES ('.implode(',',$rows).') LIMIT 1';
// UPDATE statement:
$parameters = array();
for($offset=0;$offset<count($fieldList);$offset++){
$parameters[] = $fieldList[$offset].' = '.$rows[$offset];
}
$sql_query = 'UPDATE customer SET '.implode(',',$parameters).' WHERE column=condition LIMIT 1';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.