phpbb论坛发贴时,sql语句写入文本文件
所以想到了以前为Discuz6.0论坛写的发帖备份代码.
就是在发帖和回复时,记录更新数据库的数据,创建并写入到一个文本文件,
不定时(我基本上时每天一次)用FTP下载此文件,然后删除服务器上的这个文件,
在需要恢复时,比如空间挂掉,无法取回备份文件时,在PHPMYADMIN里面导入这些备份的SQL语句文件,尽量的恢复论坛帖子.
[color=#0000FF]建议您先在本机环境测试成功后在上传覆盖空间上的文件。[/color]
用记事本打开你的论坛目录/includes/functions_posting.php文件
1,查找
[code]$make_global = false;[/code]
在它[color=#FF0000]上面[/color]粘贴下面的语句
[code]//主题写入bak_topic.txt
if ($fd = @fopen($phpbb_root_path."bak_topic.txt", "a")) {
flock($fd, LOCK_EX);
fseek($fd, 0, SEEK_END);
fwrite($fd, "INSERT INTO `phpbb_topics` VALUES(".$data['topic_id'].",".$data['forum_id'].",0,0,1,0,'$subject',$poster_id,$current_time, 0, 1, 0, 0, 0, 0, ".$data['post_id'].",'".$user->data['username']."','".$user->data['user_colour']."',".$data['post_id'].",".$user->data['user_id'].",'".$user->data['username']."','".$user->data['user_colour']."','$subject',$current_time,$current_time, 0, 0, 0, '".$poll['poll_title']."', '$poll_start', '$poll_length', '".$poll['poll_max_options']."', 0, 0);\n");
flock($fd, LOCK_UN);
fclose($fd);
}
//主题写入bak_topic.txt结束[/code]
保存修改后的文件。
2,我们来测试下:
随便发帖测试下,看看你的论坛目录下面是不是多了个备份文件?
bak_topic.txt
打开看看吧,里面的SQL语句可以直接在phpmyadmin里面导入。