thinkphp批量更新數據可以參考如下三種方法:
創新互聯專注于惠安網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供惠安營銷型網站建設,惠安網站制作、惠安網頁設計、惠安網站官網定制、小程序開發服務,打造惠安網絡公司原創品牌,更為您提供惠安網站排名全網營銷落地服務。
方法一:
//批量修改 data二維數組 field關鍵字段 參考ci 批量修改函數 傳參方式
function batch_update($table_name='',$data=array(),$field=''){
if(!$table_name||!$data||!$field){
return false;
}else{
$sql='UPDATE '.$table_name;
}
$con=array();
$con_sql=array();
$fields=array();
foreach ($data as $key = $value) {
$x=0;
foreach ($value as $k = $v) {
if($k!=$field!$con[$x]$x==0){
$con[$x]=" set {$k} = (CASE {$field} ";
}elseif($k!=$field!$con[$x]$x0){
$con[$x]=" {$k} = (CASE {$field} ";
}
if($k!=$field){
$temp=$value[$field];
$con_sql[$x].= " WHEN '{$temp}' THEN '{$v}' ";
$x++;
}
}
$temp=$value[$field];
if(!in_array($temp,$fields)){
$fields[]=$temp;
}
}
$num=count($con)-1;
foreach ($con as $key = $value) {
foreach ($con_sql as $k = $v) {
if($k==$key$key$num){
$sql.=$value.$v.' end),';
}elseif($k==$key$key==$num){
$sql.=$value.$v.' end)';
}
}
}
$str=implode(',',$fields);
$sql.=" where {$field} in({$str})";
$res=M($table_name)-execute($sql);
return $res;
}
//測試
function test(){
$update_array=array();
for ($i=2; $i 7 ; $i++) {
$data=array();
$data['id']=$i;
$data['memeber_type']=2;
$data['memeber_type_state']=1;
$update_array[]=$data;
}
$res=$this-batch_update('yl_member',$update_array,id);
var_dump($res);
}
sql= "UPDATE mydata SET p1='".$pointarr[i][1]."' where ps like '%".$pointarr[i][
每次都去做一次like的全表掃描當然慢了。
建議使用批量更新,減少查詢次數。
比如先查詢出結果集,然后在內存里去操作字段更新
最后采用 update ...... where id = xxx 這樣的更新方法。避免多次全表掃描。
不是最了解你的需求,僅供參考。
select *,DATE_FORMAT(add_time,'%Y-%m-%d') as add_date from?donku_articles
把sql語句改成上面這種,另外最好不要用fetch_row這種索引方式取值,可以用fetch_assoc這種關聯的方式,
另外你的這個 貌似在while里面用不到foreach,,smarty引擎我沒用過,按理說它的賦值 應該也不用while一個一個賦值,把$smarty-assign('art_recommend_row',$new_result);這個賦值拿到循環外面(smarty沒用過,按照thinkphp yii2 這些框架來說 賦值給模板不需要放在循環里面),我按照我的想法把你的改了一下
include('includes/init.php');
$sql="SELECT?*,DATE_FORMAT(add_time,'%Y-%m-%d')?as?add_date?FROM?`donku_articles`";
$query=$mysql-query($sql);
$result=[];
while($row=$mysql-fetch_assoc($query)){//這里應該是關聯的形式,從你的fetch_row我猜是應該是fetch_assoc
$result[]=$row;
}
//下面是賦值給模板
$smarty-assign('art_recommend_row',$result);
網站題目:二維數組更新數據php 二維數組修改數據
轉載來源:http://vcdvsql.cn/article30/dosdspo.html
成都網站建設公司_創新互聯,為您提供網站改版、外貿建站、服務器托管、網頁設計公司、標簽優化、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯