PHP中批量处理mysql字段内容,再重新插进去,要怎样处理!在线等

潇洒老哥 发布于 2013/12/20 15:26
阅读 340
收藏 0

请大神赐教:

数据库有几万条数据;字段中有远程图片地址,现在要把远程图片下载下来,保存路径重新插入到这个字段中,应该怎样循环执行,实现这一过程,请大神赐教:

<?php
$db->query("SELECT aid,imag FROM table WHERE id='1295'");
while($r = $db->fetch_array($query)){
$aid=$r['id'];
$m=$r['imag'];
$e=stristr($m,"#");
$s = str_replace("$e","",$m);
$img=GrabImage($s,$aid);//处理下载远程图片,并生成名称
$surl ="userfiles/image/pic/$img";//保存地址
$nurl=$surl.$e;//细节参数
if($img){ 
$db->query("UPDATE table set imag=$nurl where id=$aid");
//echo $nurl;//输出正常
}else{ 
//$db->query("UPDATE table set imag='' where id=$aid");
echo "false"; 
} 
}
function GrabImage($url,$filename) { 
if($url=="") return false; 
$ext=strrchr($url,"."); 
if($ext!=".gif" && $ext!=".jpg" && $ext!=".png") return false; 
if($filename==""){ 
$filename=date("YmdHis").$ext; 
}else{$filename=$filename.$ext; }
ob_start(); 
readfile($url); 
$img = ob_get_contents(); 
ob_end_clean(); 
$size = strlen($img); 
$fp2=@fopen(userfiles."/".image."/".cbaike."/".$filename, "a"); 
fwrite($fp2,$img); 
fclose($fp2); 
return $filename; 
} 
?>



加载中
0
酒逍遥
酒逍遥

数据库查询的时候 根据 id 正排序 每次取一条记录..然后记录下当前记录的id

循环查询的时候 让id大于记录的id 即可

实例代码

id =0 ;

while($r = $db->fetch_array($db->query("select aid,imag from table where id >$id order by id limit 1"))){

$id = $r['id'];

.........

}

0
卖红薯
卖红薯
问题是啥?
潇洒老哥
潇洒老哥
应该怎么循环执行
0
风沙
风沙

直接把原ID和新的文件地址存为数组啊

等所有文件都保存完后,遍历数组更新数据库。

返回顶部
顶部