thinkphp批量更新數(shù)據(jù)可以參考如下三種方法:
創(chuàng)新互聯(lián)專注于惠安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供惠安營銷型網(wǎng)站建設(shè),惠安網(wǎng)站制作、惠安網(wǎng)頁設(shè)計(jì)、惠安網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造惠安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供惠安網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
方法一:
//批量修改 data二維數(shù)組 field關(guān)鍵字段 參考ci 批量修改函數(shù) 傳參方式
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;
}
//測(cè)試
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的全表掃描當(dāng)然慢了。
建議使用批量更新,減少查詢次數(shù)。
比如先查詢出結(jié)果集,然后在內(nèi)存里去操作字段更新
最后采用 update ...... where id = xxx 這樣的更新方法。避免多次全表掃描。
不是最了解你的需求,僅供參考。
select *,DATE_FORMAT(add_time,'%Y-%m-%d') as add_date from?donku_articles
把sql語句改成上面這種,另外最好不要用fetch_row這種索引方式取值,可以用fetch_assoc這種關(guān)聯(lián)的方式,
另外你的這個(gè) 貌似在while里面用不到foreach,,smarty引擎我沒用過,按理說它的賦值 應(yīng)該也不用while一個(gè)一個(gè)賦值,把$smarty-assign('art_recommend_row',$new_result);這個(gè)賦值拿到循環(huán)外面(smarty沒用過,按照thinkphp yii2 這些框架來說 賦值給模板不需要放在循環(huán)里面),我按照我的想法把你的改了一下
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)){//這里應(yīng)該是關(guān)聯(lián)的形式,從你的fetch_row我猜是應(yīng)該是fetch_assoc
$result[]=$row;
}
//下面是賦值給模板
$smarty-assign('art_recommend_row',$result);
網(wǎng)站題目:二維數(shù)組更新數(shù)據(jù)php 二維數(shù)組修改數(shù)據(jù)
轉(zhuǎn)載來源:http://jinyejixie.com/article30/dosdspo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、外貿(mào)建站、服務(wù)器托管、網(wǎng)頁設(shè)計(jì)公司、標(biāo)簽優(yōu)化、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)