ASP论坛转discuz!PHP论坛研究四 |
------------------------------------------------
阅读本文前请首先阅读
http://www.17php.com/bbs/show_title.php?id=1181
http://www.17php.com/bbs/show_title.php?id=1182
http://www.17php.com/bbs/show_title.php?id=1183
------------------------------------------------
接上文:
转换全部回复:
<?php
//Written by www.17php.com
//welcome to bbs.17php.com
$myid=mysql_connect("localhost","root","1234");
mysql_select_db("discuz2",$myid);
$id=odbc_connect("bbs","","");
echo "->连接到mysql数据库成功!<br>";
if(!$id){
echo "<font color=red>->无法连接到ACCESS数据库</font><br>";
exit;
}else{
echo "->连接到ACCESS数据源成功!<br>";
if($result=odbc_exec($id,"select * from Forum_Reply")){
echo "->准备转换论坛回复表:<br><font color=red>转换时间取决于数据量大小,如时间较长请耐心等待</font><br>";
$i=0;
$k=0;
echo " ->1、直接拷贝数据:<br>";
while(odbc_fetch_row($result)){
$sql="insert into cdb_posts values('',"; //fid
$sql.="'".odbc_result($result,"TOPIC_ID")."',"; //tid
$sql.="'',"; //pid
$sql.="'0',";
$sql.="'',"; //icon
$sql.="'".odbc_result($result,"R_AUTHOR")."',"; //AUTHOR
$sql.="'',"; //subject
$sql.="'".strtotime(odbc_result($result,"T_DATE"))."',";
$sql.="'".odbc_result($result,"R_MESSAGE")."',";
$sql.="'".odbc_result($result,"R_IP")."',";
$sql.="'0',";
$sql.="'0',";
$sql.="'0',";
$sql.="'0',";
$sql.="'0',";
$sql.="'0'";
$sql.=")";
mysql_query($sql,$myid);
if(($i%2000)==0){
$k=$k+1;
echo "<br>>>完成:2000×".$k;
}
$i=$i+1;
}
echo "<br>共转换回复:".$i."条。<br>";
echo " ->2、开始按照临时表2内容进行数据一致性对齐操作:<br>";
$i=0;
$k=0;
$sql="select * from temptable2";
$rrr=mysql_query($sql,$myid);
while($rrr2=mysql_fetch_array($rrr,MYSQL_ASSOC)){
$i++;
$sql="update cdb_posts set tid=".$rrr2["afters"]." where tid=".$rrr2["befores"];
mysql_query($sql,$myid);
if(($i%500)==0){
$k=$k+1;
echo "<br>--->>完成:500×".$k."<br>";
}
}
echo " ->3、开始进行数据一致性补充对齐操作:<br>";
$sql="select * from cdb_threads";
$rrr=mysql_query($sql,$myid);
$i=0;
$k=0;
while($rrr2=mysql_fetch_array($rrr,MYSQL_ASSOC)){
$i++;
$sql="update cdb_posts set fid=".$rrr2["fid"]." where tid=".$rrr2["tid"];
mysql_query($sql,$myid);
if(($i%500)==0){
$k=$k+1;
echo "<br>-->>完成:500×".$k."<br>";
}
}
echo " ->4、开始进行数据一致性补充对齐操作(统计各板块回复数):<br>";
$sql="select fid,count(*) as counts from cdb_posts group by fid";
$rrrr=mysql_query($sql,$myid);
while($rrr22=mysql_fetch_array($rrrr,MYSQL_ASSOC)){
$sql="update cdb_forums set posts=threads+".$rrr22["counts"]." where fid=".$rrr22["fid"];
mysql_query($sql,$myid);
echo "板块".$rrr22["fid"]."的回复".$rrr22["counts"]."条设置完毕。<br>";
}
echo "全部回复转换工作完成!<br>";
}else{
echo "->access数据库查询失败!";
exit;
}
}
?>
(全文完!)
|
|
|