留言本从access数据库直接转入帝国MYSQL |
时间:2020-01-28 11:39:18 来源:原创 作者:天子 阅读:6176次 |
|
|
前言: 我以前有个小网站,是ASP+access的,还是2004年做的,太落后了,想转换成帝国CMS,文章之类的我都用采集功能直接采集过来了,但是留言本没办法弄,1千几百条留言又不想丢。于是想到了NavicatforMySQL这个软件,这是一款mysql数据库的图形化操作软件,功能强大,可以本地或者远程操作。关键的是,它还可以直接导入access数据库的内容,下面看看我是怎样操作的吧。 因为我还同时需要给留言本添加两个字段,所以先做这个工作: 【一、添加字段,修改文件和模板】
首先,打开MYSQL数据库,找到phome_enewsgbook数据表,它的结构是这样的:
字段名 类型 解释 附加说明 lyid int(10) 留言ID name varchar(30) 姓名 email varchar(80) 邮箱 mycall varchar(30) 电话 lytime datetime 留言时间 lytext text 留言内容 retext text 留言回复 bid smallint(5) 留言分类ID ip varchar(20) 留言IP checked tinyint(1) 留言是否审核通过 1为未审核,0为已审核 userid mediumint(8) 提交者用户ID username varchar(20) 提交者用户名 eipport varchar(6) 访问源端口 |
1/我需要给它增加两个项目:所在城市,和个人主页,如下:
city VARCHAR(30) 城市 web VARCHAR(30) 主页 |
于是在后台SQL执行添加这两个字段的操作,如下:
ALTER TABLE phome_enewsgbook ADD city VARCHAR(30); ALTER TABLE phome_enewsgbook ADD web VARCHAR(30); |
2/打开 e/enews/gbookfun.php 这个文件,找到下面这段,并添加新增加的两个项目。
$name=RepPostStr(trim($add[name])); $email=RepPostStr($add[email]); $call=RepPostStr($add[call]); $lytext=RepPostStr($add[lytext]); $gtitle=RepPostStr(trim($add[city])); //增加的city $gtitle=RepPostStr($add[web]); //增加的web if(empty($bid)||empty($city)||empty($name)||empty($email)||!trim ($lytext)) //city字段检测不允许为空web可以为空。 |
再继续往下找到这里
$sql=$empire->query("insert into {$dbtbpre}enewsgbook(name,gtitle,email,`call`,lytime,lytext,retext,bid,ip,checked,userid,username) values('$name','$city','$web','$email','$call','$lytime','$lytext','','$bid','$ip','$br[checked]','$userid','$username');"); //插入字段记录 |
3/打开 e/data/template/gbooktemp.txt 这个文件,在这里
$query="select lyid,name,city,web,email,`call`,lytime,lytext,retext from {$dbtbpre}enewsgbook where bid='$bid' and checked=0"; //查询字段中添加city和web |
4/打开e/class/t_functions.php第2110行左右
$listtemp=str_replace("[!--lyid--]",$r['lyid'],$listtemp);//id $listtemp=str_replace("[!--lytext--]",nl2br($r['lytext']),$listtemp);//留言内容 $listtemp=str_replace("[!--retext--]",nl2br($r['retext']),$listtemp);//回复 $listtemp=str_replace("[!--lytime--]",format_datetime($r['lytime'],$formatdate),$listtemp); $listtemp=str_replace("[!--name--]",$r['name'],$listtemp); $listtemp=str_replace("[!--city--]",$r['city'],$listtemp);//来自 $listtemp=str_replace("[!--web--]",$r['web'],$listtemp);//主页 |
5/打开 e/class/functions.php 第2940行左右添加
$listtemp_center=str_replace("[!--lyid--]","<?=$r[lyid]?>",$listtemp_center); $listtemp_center=str_replace("[!--name--]","<?=$r[name]?>",$listtemp_center); $listtemp_center=str_replace("[!--city--]","<?=$r[city]?>",$listtemp_center); $listtemp_center=str_replace("[!--web--]","<?=$r[web]?>",$listtemp_center); |
6/ 修改留言模板: <input name="city" type="text" id="city" /> <input name="web" type="text" id="web" />
7/后台管理页面添加项目显示 打开 e/admin/tool/gbook.php 添加:
<option value="5"<?=$show==5?' selected':''?>>城市</option> <option value="6"<?=$show==6?' selected':''?>>主页</option> <td width="65%"><strong>邮箱:<?=$r[email]?>,电话:<?=$r[mycall]?>,来自:<?=$r[city]?>,主页:<?=$r[web]?></strong></td> |
【二、修改access数据库的表名,字段名】 这个工作是为了后面导入的时候清晰明了不会出错。表名,字段名都改成了文章开头讲的与帝国一模一样的。
【三、导入转换数据库】 打开NavicatforMySQL,地址本机就默认的localhost,远程的就填写域名地址或者IP地址即可,端口默认的是3306,特殊的直接填写即可。
然后连接,即可打开,找到phome_enewsgbook数据表双击进入,
点导入,选择MS Access,
下一步,浏览你的access数据库,选择表,
下一步,
下一步,开始。
最后转换完毕刷新页面的样子:
|
|
|
|
|