PHPBB网站如何搬迁新服务器,phpbb迁移至newbb数据迁移程序

// by balancesli

$db_server = "localhost"; // server name

$db_user = "db_user"; // username

$db_pass = "db_passwd"; // password

$phpbb_db = "db_src"; // phpbb database name

$phpbb_tbl = "phpbb_"; // table prefix

$xoops_db = "db_dst"; // xoop database name

$xoops_tbl = "xoops_"; // table prefix

$cat_ids_map = array();

$forum_ids_map = array();

$topic_ids_map = array();

if(!$dbh = mysql_connect($db_server, $db_user, $db_pass) )

{

printf("There was an error while connecting to the database! %s", mysql_error($dbh));

}

/* Copy Category */ // note: must use order by

$sql = sprintf("SELECT cat_id, cat_title, cat_order FROM %s.%scategories ORDER BY cat_id;",

$phpbb_db, $phpbb_tbl);

echo $sql."

\n";

$result = mysql_query($sql, $dbh);

while ($row = mysql_fetch_array($result))

{

$title = iconv("UTF-8", "GB2312", $row["cat_title"]);

$sql = sprintf(

"INSERT INTO %s.%sbb_categories(cat_title, cat_order)".

"VALUES('%s',%s);", $xoops_db, $xoops_tbl, $title, $row["cat_order"]

);

echo $sql."

\n";

if( !mysql_query($sql, $dbh) )

{

printf("There was an error while delting forum categories! %s", mysql_error($dbh));

}

$cat_ids_map[$row["cat_id"]] = mysql_insert_id($dbh);

}

foreach($cat_ids_map as $key => $cat_id)

{

echo $key."==>".$cat_ids_map[$key]."

\n";

}

/* Copy Forums */

$sql = sprintf(

"SELECT forum_id, cat_id, forum_name, forum_desc, forum_order, ".

"forum_topics, forum_posts, forum_last_post_id, forum_status ".

"FROM %s.%sforums ORDER BY forum_id;", $phpbb_db, $phpbb_tbl

);

echo $sql."

\n";

$result = mysql_query($sql, $dbh);

while ($row = mysql_fetch_array($result))

{

$forum_name = iconv("UTF-8", "GB2312", $row["forum_name"]);

$forum_desc = iconv("UTF-8", "GB2312", $row["forum_desc"]);

echo $row["cat_id"]."==>".$cat_ids_map[$row["cat_id"]]."

\n";

$cat_id = $cat_ids_map[$row["cat_id"]];

$sql = sprintf(

"INSERT INTO %s.%sbb_forums(cat_id, forum_name, forum_desc, forum_order, ".

"forum_topics, forum_posts, forum_last_post_id, forum_type) ".

"VALUES(%s,'%s','%s',%s, %s, %s, %s, %s);",

$xoops_db, $xoops_tbl, $cat_id, $forum_name,

$forum_desc, $row["forum_order"], $row["forum_topics"],

$row["forum_posts"], $row["forum_last_post_id"], $row["forum_status"]

);

echo $sql."

\n";

if( !mysql_query($sql, $dbh) )

{

printf("There was an error while delting forum categories! %s", mysql_error($dbh));

}

$forum_ids_map[$row["forum_id"]] = mysql_insert_id($dbh);

}

/* Copy Topics */

$sql = sprintf(

"SELECT topic_id, forum_id, topic_title, topic_poster, ".

"topic_time, topic_views, topic_replies, topic_last_post_id, ".

"topic_status, topic_type FROM %s.%stopics ORDER BY topic_id ;",

$phpbb_db, $phpbb_tbl

);

echo $sql."

\n";

$result = mysql_query($sql, $dbh);

while ($row = mysql_fetch_array($result))

{

$topic_title = iconv("UTF-8", "GB2312", $row["topic_title"]);

$forum_id = $forum_ids_map[$row["forum_id"]];

$sql = sprintf(

"INSERT INTO %s.%sbb_topics(".

"forum_id, topic_title, topic_poster, topic_time, ".

"topic_views, topic_replies, topic_last_post_id, topic_status, topic_sticky) ".

"VALUES(%s,'%s',%s, %s, %s, %s, %s, %s, %s);",

$xoops_db, $xoops_tbl, $forum_id, $topic_title,

$row["topic_poster"], $row["topic_time"],$row["topic_views"],

$row["topic_replies"], $row["topic_last_post_id"],$row["topic_status"],

$row["topic_type"]

);

echo $sql."

\n";

if( !mysql_query($sql, $dbh) )

{

printf("There was an error while delting forum categories! %s", mysql_error($dbh));

}

$topic_ids_map[$row["topic_id"]] = mysql_insert_id($dbh);

}

/* Copy Posts */

$sql = sprintf(

"SELECT p.post_id AS post_id, p.topic_id AS topic_id, p.forum_id AS forum_id, ".

"p.post_time AS post_time, p.poster_id AS poster_id, ".

"INET_ATON(CONCAT(CONV(MID(p.poster_ip,1,2), 16,10 ),'.',CONV(MID(p.poster_ip,3,2), 16,10 ),'.',CONV(MID(p.poster_ip,5,2), 16,10 ),'.',CONV(MID(p.poster_ip,7,2), 16,10 ))) AS poster_ip, ".

"t.post_subject AS post_subject, t.post_text AS post_text, p.enable_html AS enable_html, ".

"p.enable_smilies AS enable_smilies, p.enable_bbcode AS enable_bbcode, p.enable_sig AS enable_sig ".

"FROM %s.%sposts p ".

"LEFT JOIN %s.%sposts_text t ".

"ON p.post_id = t.post_id ORDER BY post_id; ",

$phpbb_db, $phpbb_tbl, $phpbb_db, $phpbb_tbl

);

echo $sql."

\n";

$result = mysql_query($sql, $dbh);

while ($row = mysql_fetch_array($result))

{

$post_subject = iconv("UTF-8", "GB2312",$row["post_subject"]);

$forum_id = $forum_ids_map[$row["forum_id"]];

$topic_id = $topic_ids_map[$row["topic_id"]];

$sql = sprintf(

"INSERT INTO %s.%sbb_posts(topic_id, forum_id, post_time, uid, ".

"poster_ip, subject, dohtml, dosmiley, doxcode, attachsig) ".

"VALUES(%s, %s, %s, %s, %s, '%s', %s, %s, %s, %s) ;",

$xoops_db, $xoops_tbl, $topic_id, $forum_id,

$row["post_time"],

$row["poster_id"],

$row["poster_ip"],

$post_subject,

$row["enable_html"],

$row["enable_smilies"],

$row["enable_bbcode"],

$row["enable_sig"]

);

echo $sql."

\n";

if( !mysql_query($sql, $dbh) )

{

printf("There was an error while adding posts! %s", mysql_error($dbh));

}

$new_post_id = @mysql_insert_id($dbh);

$post_text = iconv("UTF-8", "GB2312", $row["post_text"]);

$sql = sprintf(

"INSERT INTO %s.%sbb_posts_text(post_id, post_text) ".

"VALUES(%s, '%s');", $xoops_db, $xoops_tbl, $new_post_id, $post_text

);

if( !mysql_query($sql, $dbh) )

{

printf("There was an error while delting forum categories! %s", mysql_error($dbh));

}

}

mysql_close($dbh);

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要批量插入数据phpBB数据库,你可以使用SQL语句来实现。以下是一个示例代码,假设你要批量插入用户数据: ```php <?php // 连接到数据库 $dbhost = '数据库主机名'; $dbuser = '数据库用户名'; $dbpass = '数据库密码'; $dbname = '数据库名'; $dbport = '数据库端口(可选)'; $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname, $dbport); // 检查连接是否成功 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } // 定义要插入的用户数据数组 $users = array( array('用户名1', '密码1', '电子邮件1'), array('用户名2', '密码2', '电子邮件2'), // 添加更多用户数据... ); // 构建插入语句 $sql = "INSERT INTO phpbb_users (username, user_password, user_email) VALUES "; foreach ($users as $user) { $username = mysqli_real_escape_string($conn, $user[0]); $password = mysqli_real_escape_string($conn, $user[1]); $email = mysqli_real_escape_string($conn, $user[2]); $sql .= "('$username', '$password', '$email'), "; } $sql = rtrim($sql, ", "); // 去除最后一个逗号和空格 // 执行插入语句 if (mysqli_query($conn, $sql)) { echo "数据插入成功"; } else { echo "插入数据时出错: " . mysqli_error($conn); } // 关闭数据库连接 mysqli_close($conn); ?> ``` 请注意,上述代码中的数据库表名和字段名可能需要根据你的实际情况进行修改。此外,确保在插入之前对用户数据进行适当的验证和清理,以防止SQL注入等安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值