首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 批量处理数据出错..~如何批量更新数据? [已结贴,结贴人:qazwsxhai]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qazwsxhai
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-21 22:32:10 楼主
    /***
    *
    *    主要是用xunhuan处理内容里的html标签。
    */
    $msg = '';$sum = 0;
    $conn = mysql_connect('localhost',***_f',****) or die(mysql_error());略
    mysql_select_db('dianyuan',$conn);
    mysql_query('SET NAMES gbk');
    //15550
    for($i=10000;$i <=15500;$i++){
    $sql = "select body from dede_addonarticle where aid=".$i;
    $result = mysql_query($sql,$conn) or die(mysql_error());
    if(mysql_num_rows($result) == 0){
      $msg .= $i."的记录为空 <br>";
      continue;
    }
    $row = mysql_fetch_array($result);
    if($row['body'] == ''){
      $msg .= $i.'id的值$row[body]的值为空 <br>';
      continue;
    }
    $strStr = html_entity_decode($row['body']);
    $strings = strip_tags($strStr,' <br> <p> <a> ');
    $upStr = "UPDATE dede_addonarticle SET body='".$strings."' where aid =".$i;
    $resultTwo = mysql_query($upStr,$conn);
    if($resultTwo){
      $msg .= $i."更新成功 <br>";
    }else{
      $msg .= $i."更新不成功 <br>";
      //echo $msg;
      //exit;
    }
    $sum++;
    unset($strStr,$strings);
    }
    echo $msg;
    echo "共循环了".$sum."次";
    ?>

    大伙说说我这样批量处理数据的方式行吗?
    事实上它不行,它把body字段的所有内容都搞成同一个内容了...

    为什么?
    大伙是怎么批量处理数据库的内容的?
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hrb2008
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 23:15:471楼 得分:20
    UPDATE dede_addonarticle SET dede_addonarticle.body=Replace(Replace(Replace(dede_addonarticle.body,' <br>',''),' <p>',''),' <a>','') where dede_addonarticle.aid between 10000 and 15500 and body <>''


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qazwsxhai
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 23:47:332楼 得分:0
    谢谢你的回复.

    我也考虑过这句语句,但不好实现.我主要的目的是除了 <br> <p> <a>这几个标签全部标签都去掉,呵
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qngzh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 00:27:393楼 得分:10
    $strings = strip_tags($strStr,' <br> <p> <a> '); 这一行用preg_replace函数修改
    $strings = preg_replace('/ <[^>]+?>/i', '', $strStr);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xuzuning
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 40

      9

    发表于:2008-08-22 08:06:094楼 得分:10
    $upStr = "UPDATE dede_addonarticle SET body='".$strings."' where aid =".$i;
    中,$strings未做转义处理
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fxs_2008
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

      2

    发表于:2008-08-22 08:37:295楼 得分:10
    addslashes()
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qazwsxhai
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 15:58:476楼 得分:0
    我还想问下,先不从安全方面来考虑,即是没有做转义处理 也能update的吧~ 
    一定要做转义处理的吗?
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved