完美动易2006 Sp6 SW6.5 Access MSSQL转 PHPCMS 2007 SP6 程序2008-4-26
[size=3]完美动易2006 Sp6 SiteWeaver CMS6.5 Access MSSQL转 PHPCMS 2007 SP6程序 Bulid 2008-4-26[/size][size=3]
[size=2][color=green][b](由于本人的爱好,做了几个小网站,现在需要将其转到PHPCMS中,但是官方的程序均不可用,于是自己经过20多天的摸索,改出一个完美版的转换程序。本着开源的精神,现将自已修改的这个程序共享出来,由于本人第一次改PHP的程序,以前没有接触过,内有BUG或测试不到之处,还望各位网友指正,大家共同探讨,一起进步)
/*
======================================================================
动易内容管理Access MSSQL版 >> 到PHPCMS 2007 数据转换程序 0.8426 Bulid 2008-4-26
[/b][/color][/size][url=http://www.phpcms.cn/][size=2][color=green][b]www.phpcms.cn[/b][/color][/size][/url][size=2][color=green][b] 原版发布
gsweiyu 修改
联系方式:han#minqin.cn 我的网站:[/b][/color][/size][url=http://www.minqin.cn/][size=2][color=green][b]http://www.minqin.cn[/b][/color][/size][/url][/size][size=2][color=green][b](拯救民勤网)[/b][/color][/size]
[size=3][b][size=2][color=green]======================================================================
*/[/color][/size]
[/b]
[size=10px][size=3][b]声明[/b] :
[/size][list][*][size=3]本程序为在官方免费程序上修改,相应版权归原开发者所有,修改部分归本人所有。 [/size][*][size=3]本程序的使用者应当有一定的PHP.MYSQL.MSSQL使用基础,否则请先行了解相关知识。 [/size][*][size=3]本程序操作不会破坏原有动易数据,本人对使用本程序所产生的损失不承担任何责任。 [/size][*][size=3]本程序不保证数据100%的导入成功,有问题请咨询官方或联系本人:han@minqin.cn。 [/size][/list][size=3][b]本程序适用转换版本[/b] :
[/size][list][*][size=3]PowerEasy @2006 Sp6 Access MSSQL [/size][*][size=3]SiteWeaver CMS6.5 Access MSSQL [/size][*][size=3]转换 -> PHPCMS @2007 Sp6 ( 均为最新版本测试通过 ) [/size][/list][size=3][b]本程序在以下环境中测试通过[/b] :
[/size][list][*][size=3]WINDOWS 下 PHP4/5 以及 PHPCMS 2007 支持版本的MYSQL [/size][*][size=3]如需要转换MSSQL版本还需在本机上安装MSSQL 2000/2005[/size][/list][size=3][color=blue]本人试验的环境说明:[/color][/size]
[size=3][color=blue]Windows XP 专业版 Sp2 PC_webserver官方下载,MS SQLSERVER 2000 Sp5[/color][/size]
[size=3][color=blue]PowerEasy @2006 Sp6 Access版 有多个文章频道,一个图片频道,一个下载频道,计有数据3400余条,后升级到MSSQL,均测试通过[/color][/size]
[size=3][color=blue][/color][/size]
[size=3][size=3][color=blue]Windows 2003 企业版 Sp2 IIS 6,PHP 5.25,Mysql 5.0.45-community-nt,MS SQLSERVER 2005 Sp2[/color][/size]
[color=blue]PHP 工作在IIS 6 FASTCGI 模式下(关于FASTCGI,与ISAPI并无不同,但效率要高得多)[/color]
[color=blue]SiteWeaver CMS6.5 SQL版 有多个文章频道,无图片与下载频道,计有数据20余条,导出到ACCESS,均测试通过[/color][/size]
[size=3][color=#0000ff](经测试,PHPCMS Sp4 Sp5 动易2006 Sp4以上均可使用本程序)[/color][/size]
[size=3]
[/size][size=3][b]本程序可以转换的数据[/b] :
[/size][list][*][size=3]用户列表; [/size][*][size=3]所有文章频道类型(包括专题)数据; [/size][*][size=3]所有下载频道类型(包括专题)数据; [/size][*][size=3]所有图片频道类型(包括专题)数据; [/size][*][size=3]友情链接数据; [/size][*][size=3]公告数据; [/size][/list][size=3][b]本程序不能或无法完整转换的数据及注意要点[/b] :
[/size][list][*][size=3]重复的用户登陆号将忽略; [/size][*][size=3]安装完毕后,请更新缓存,并对各个频道、栏目更新缓存; [/size][*][size=3]PHPCMS 2007中的原有数据将完全删除; [/size][*][size=3]仅对文章、图片和下载三种类型的频道进行导入,其它则频道不进行导入; [/size][*][size=3]本版本能自动添加自定义核心类型频道,请确认您的phpcms目录有权限写,以便程序操作; [/size][*][size=3]转入后的内容相关图片链接地址,请自行复制到相应的目录中,即可显示。[/size][/list][size=3][color=red]使用说明:[/color][/size]
[size=3][color=#ff0000] 1、只需要修改config.php一个文件,其他的文件不需要改动,修改中多注意提示[/color][/size]
[size=3][color=#ff0000] 2、如需转换MSSQL版本,必须解决PHP无法读取MSSQL的NTEXT类型数据的问题[/color][/size]
[size=3][color=#000000][color=#333333] [/color]MS SQL message: ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier. (severity 16)
[/color] 经过N次实验,终于找到了一种变通的方法完美解决PHP下读MsSQL个NTEXT的方法
[/size][size=3] 思路是用一个存储过程读出MsSQL的表域名,然后将这个表域名替换select * form [表名] where [条件]
这样的*[字段名|域名列表],具体参见相关程序
[size=3][color=#ff0000] (这个解决思路也可以用在类似的程序中,轻松解决PHP与MSSQL的查询问题)[/color][/size]
[/size][size=3][/size]
[size=3] 事先请先执行sp_columns.sql创建存储过程
需要远程登录MS SQL SERVER,在需要转换的数据库中新建一个存储过程
将本程序目录下sp_columns.sql内的所有内容复制过去并执行,提示执行成功便可,如果执行失败,则是因为你修改了sp_columns.sql的内容,将原文复制过去再执行。[/size]
[size=3][size=3][color=black][/color][/size]
[size=3][color=#ff0000] 3、ESHOP版本中的文章数据也同样可以转换,因本人手中没有ESHOP版本的数据库,所以没有测试,有需要的朋友可以根据这个程序按例改写程序便可。[/color][/size]
[color=#ff0000] 4、原动易数据中(如文章中a)如果有“/”、“\”等符号可能导致转换失败,请先修复原动易数据。[/color]
[color=black][color=#333333] MySQL Error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '',author = 'admin',copyfrom = '经济日报',paginationtype = '0',maxcharperpage = '' at line 1
MySQL Errno:1064
Message:MySQL Query Error[/color][/color]
[color=black][color=#333333] [/color]这个错误是由于记录中有的域中有非法字符如:"/"、"\" ,或是找到对应的记录删除了就没错了
[/color][color=#ff0000] 5、如果服务器不方便,不能直接转MSSQL,需要导出到ACCESS,请注意以下几点[/color]
准备一个空的PowerEasy2006.mdb,所谓空,是里面所有表的记录都删除空了,如果不这样做,在导出时就一定要在映射中选择删除表中所有记录。
或是准备一个空的MDB数据库,导出时重新建表,这样操作更复杂一些,需要一定的专业知识
如果你在动易中建了其他的频道,PE_Admin 最后生增加几个新列,可以手工PowerEasy2006.mdb加上,也可以忽略。
错误 0xc0202009: {20121A51-ED90-4F25-A740-75F912CE40AD}: SSIS 错误代码 DTS_E_OLEDBERROR。出现 OLE DB 错误。错误代码: 0x80004005。
已获得 OLE DB 记录。源:“Microsoft JET Database Engine” Hresult: 0x80004005 说明:“未指定的错误”。
如果出现这样的错误,是一次执行的表太多了的缘故,可以一次导出1/3的表,分3次导完。
[/size][size=3][color=#ff0000] 6、如果转换错误,请在phpMyAdmin对应数据库中SQL处执行如下语句,便可重新进行转换。[/color][/size]
[size=3][color=#ff0000][color=#333333][code]TRUNCATE `phpcms_announce`;
TRUNCATE `phpcms_category`;
TRUNCATE `phpcms_link`;
TRUNCATE `phpcms_member`;
TRUNCATE `phpcms_member_info`;
TRUNCATE `phpcms_special` ;
DELETE FROM `phpcms_channel` WHERE `phpcms_channel`.`channelid` >6;[/code][/color][/color][/size]
[size=3][color=#ff0000][color=#333333][/color]
7、其他未尽事宜,还望各位同仁多加测试,如有错误,请说明错误原因,截图跟贴。[/color]
[/size][/size][/size]
[size=3][color=red][b]使用步骤:[/b][/color][/size]
[size=3][color=red][b]1、下载本程序[/b][/color][/size]
[size=3][color=red][b]2、假定已安装PHPCMS,并可以正常使用[/b][/color][/size]
[size=3][color=red][b]3、将本程序解压到PHPCMS根目录(正常解压为/pe2phpcms)[/b][/color][/size]
[size=3][color=red][b]4、准备数据库,ACCESS要拷贝到网站用户有访问权利的目录下,本机转换任何路径均可[/b][/color][/size]
[size=3][color=red][b]MSSQL测试访问权限[/b][/color][/size]
[size=3][color=red][b]5、修改CONFIG.PHP一般而言,只需要修改本程序中的配置[/b][/color][/size]
[size=3][color=red][b]6、开始转换[/b][/color][/size]
[size=3][/size]
[size=3][/size]
[size=3]本程序的主要修正:
1、修正了旧版的转换程序只能转成PHPCMS Sp5而不能转到PHPCMS Sp6的错误;
2、修正了旧版程序在数据量大时出现超时的问题;
3、增加了旧版程序中的提示与统计信息,可以更好的反映转换状况;
4、找到了一个PHP中有效读取MSSQL时NTEXT类型数据的思路,并以此解决了众多ASP+MSSQL网站程序向PHP移植的问题,尤其有数据量大的情况下,导出Access出错时,这种办法尤为重要
5、顺利实现了MSSQL版向PHPCMS的转移。
6、针对于转换过程中遇到的种种问题,一方面修改了程序中的几处不严谨的地方,另一方面给出了解决办法。
7、针对于动易开源的SiteWeaver CMS6.5,也实现了ACCESS与MSSQL两种版本的的顺利转移。
8、花费了大量的时间,在15万条数据的基础上,对于程序进行了细致的测试,确保有较少的BUG。[/size]
[size=3][/size]
[size=3][/size]
[color=green][size=3]完美动易2006 Sp6 SiteWeaver CMS6.5 Access MSSQL转 PHPCMS 2007 SP6 程序 Bulid 2008-4-26
2008-4-27修正两处错误:[/size]
[size=3]1、友情链接不能转换的问题[/size]
[size=3]2、增加了开始时间和结束时间,大家可以算算N万数据需要多少时间转换完成[/size][/color]
[size=3]
[/size](感谢各位管理员,让我也落伍了,这个程序我修正了一下,重新上传了,大家需要的请重新下载)
[[i] 本帖最后由 gsweiyu 于 2008-4-28 01:05 编辑 [/i]] 留个名,谢谢了 严重支持 民勤?????、
老乡啊。。。。。。。眼泪哗哗的。。 你太厉害了啊
AC转MYSQL 顶,呵 [quote]原帖由 [i]hoopking[/i] 于 2008-4-27 19:47 发表 [url=http://www.im286.com/redirect.php?goto=findpost&pid=25714362&ptid=2543148][img]http://www.im286.com/images/common/back.gif[/img][/url]
民勤?????、
老乡啊。。。。。。。眼泪哗哗的。。 [/quote]
老乡呀,网站上有我QQ,加了我们慢慢聊 能搞个新云转PHPCMS的不?
[url=http://www.bag268.com]百奥谷[/url] 支持下 斑竹别说我恶意灌水去就行。。。。 领导不在,好象就我这么闲呵呵 斑竹别说我恶意灌水去就行。。。。 我是给大家打地基呢呵呵。 领导不在,好象就我这么闲呵呵 上网的人好象不多呢 MJJ 领导不在,好象就我这么闲呵呵 MJJ 大家加油啊,我昨天顶了半天还是给别人当炮灰了。。。 ]呵呵,大家现在似乎都不活跃了。加油啊,一起来灌啊。
