完美動(dòng)易2006 Sp6 SW6.5 Access MSSQL轉(zhuǎn) PHPCMS 2007 SP6
[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
完美動(dòng)易2006 Sp6 SW6.5 Access MSSQL轉(zhuǎn) PHPCMS 2007 SP6 程序2008-5-2
完美動(dòng)易2006 Sp6??SiteWeaver CMS6.5 Access MSSQL轉(zhuǎn) PHPCMS 2007 SP6程序??Bulid 2008-5-2
(由于本人的愛(ài)好,做了幾個(gè)小網(wǎng)站,現(xiàn)在需要將其轉(zhuǎn)到PHPCMS中,但是官方的程序均不可用,于是自己經(jīng)過(guò)20多天的摸索,改出一個(gè)完美版的轉(zhuǎn)換程序。本著開(kāi)源的精神,現(xiàn)將自已修改的這個(gè)程序共享出來(lái),由于本人第一次改PHP的程序,以前沒(méi)有接觸過(guò),內(nèi)有BUG或測(cè)試不到之處,還望各位網(wǎng)友指正,大家共同探討,一起進(jìn)步)
/*
=========================================================
動(dòng)易內(nèi)容管理Access MSSQL版 >> 到PHPCMS 2007 數(shù)據(jù)轉(zhuǎn)換程序??0.8426 Bulid 2008-5-2
www.phpcms.cn 原版發(fā)布
gsweiyu 修改
聯(lián)系方式:han#minqin.cn??我的網(wǎng)站:http://www.minqin.cn(拯救民勤網(wǎng))
=========================================================
*/
聲明 :??
- 本程序?yàn)樵诠俜矫赓M(fèi)程序上修改,相應(yīng)版權(quán)歸原開(kāi)發(fā)者所有,修改部分歸本人所有。
- 本程序的使用者應(yīng)當(dāng)有一定的PHP.MYSQL.MSSQL使用基礎(chǔ),否則請(qǐng)先行了解相關(guān)知識(shí)。
- 本程序操作不會(huì)破壞原有動(dòng)易數(shù)據(jù),本人對(duì)使用本程序所產(chǎn)生的損失不承擔(dān)任何責(zé)任。
- 本程序不保證數(shù)據(jù)100%的導(dǎo)入成功,有問(wèn)題請(qǐng)咨詢(xún)官方或聯(lián)系本人:han@minqin.cn。
本程序適用轉(zhuǎn)換版本 :
- PowerEasy @2006 Sp6 Access MSSQL
- SiteWeaver CMS6.5 Access MSSQL
- 轉(zhuǎn)換??-> PHPCMS @2007 Sp6??( 均為最新版本測(cè)試通過(guò) )
本程序在以下環(huán)境中測(cè)試通過(guò) :
- WINDOWS 下 PHP4/5 以及 PHPCMS 2007 支持版本的MYSQL
- 如需要轉(zhuǎn)換MSSQL版本還需在本機(jī)上安裝MSSQL 2000/2005
? ?? ?本人試驗(yàn)的環(huán)境說(shuō)明:
? ?? ?Windows XP 專(zhuān)業(yè)版 Sp2 PC_webserver官方下載,MS SQLSERVER 2000 Sp5
? ?? ?PowerEasy @2006 Sp6 Access版 有多個(gè)文章頻道,一個(gè)圖片頻道,一個(gè)下載頻道,計(jì)有數(shù)據(jù)3400余條,后升級(jí)到MSSQL,均測(cè)試通過(guò)
? ?? ?Windows 2003 企業(yè)版 Sp2??IIS 6,PHP 5.25,Mysql 5.0.45-community-nt,MS SQLSERVER 2005 Sp2
? ?? ?PHP 工作在IIS 6 FASTCGI 模式下(關(guān)于FASTCGI,與ISAPI并無(wú)不同,但效率要高得多)
? ?? ?SiteWeaver CMS6.5 SQL版 有多個(gè)文章頻道,無(wú)圖片與下載頻道,計(jì)有數(shù)據(jù)20余條,導(dǎo)出到ACCESS,均測(cè)試通過(guò)
? ?? ?(經(jīng)測(cè)試,PHPCMS Sp4 Sp5 動(dòng)易2006 Sp4以上均可使用本程序)
本程序可以轉(zhuǎn)換的數(shù)據(jù) :
- 用戶(hù)列表;
- 所有文章頻道類(lèi)型(包括專(zhuān)題)數(shù)據(jù);
- 所有下載頻道類(lèi)型(包括專(zhuān)題)數(shù)據(jù);
- 所有圖片頻道類(lèi)型(包括專(zhuān)題)數(shù)據(jù);
- 友情鏈接數(shù)據(jù);
- 公告數(shù)據(jù);
本程序不能或無(wú)法完整轉(zhuǎn)換的數(shù)據(jù)及注意要點(diǎn) :
- 重復(fù)的用戶(hù)登陸號(hào)將忽略;
- 安裝完畢后,請(qǐng)更新緩存,并對(duì)各個(gè)頻道、欄目更新緩存;
- PHPCMS 2007中的原有數(shù)據(jù)將完全刪除;
- 僅對(duì)文章、圖片和下載三種類(lèi)型的頻道進(jìn)行導(dǎo)入,其它則頻道不進(jìn)行導(dǎo)入;
- 本版本能自動(dòng)添加自定義核心類(lèi)型頻道,請(qǐng)確認(rèn)您的phpcms目錄有權(quán)限寫(xiě),以便程序操作;
- 轉(zhuǎn)入后的內(nèi)容相關(guān)圖片鏈接地址,請(qǐng)自行復(fù)制到相應(yīng)的目錄中,即可顯示。
使用說(shuō)明:
? ? 1、只需要修改config.php一個(gè)文件,其他的文件不需要改動(dòng),修改中多注意提示
? ? 2、如需轉(zhuǎn)換MSSQL版本,必須解決PHP無(wú)法讀取MSSQL的NTEXT類(lèi)型數(shù)據(jù)的問(wèn)題
? ?? ?? ?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)
? ?? ?? ?經(jīng)過(guò)N次實(shí)驗(yàn),終于找到了一種變通的方法完美解決PHP下讀MsSQL個(gè)NTEXT的方法
思路是用一個(gè)存儲(chǔ)過(guò)程讀出MsSQL的表域名,然后將這個(gè)表域名替換select * form [表名] where [條件]
這樣的*[字段名|域名列表],具體參見(jiàn)相關(guān)程序
? ?? ? (這個(gè)解決思路也可以用在類(lèi)似的程序中,輕松解決PHP與MSSQL的查詢(xún)問(wèn)題)
事先請(qǐng)先執(zhí)行sp_columns.sql創(chuàng)建存儲(chǔ)過(guò)程
需要遠(yuǎn)程登錄MS SQL SERVER,在需要轉(zhuǎn)換的數(shù)據(jù)庫(kù)中新建一個(gè)存儲(chǔ)過(guò)程
將本程序目錄下sp_columns.sql內(nèi)的所有內(nèi)容復(fù)制過(guò)去并執(zhí)行,提示執(zhí)行成功便可,如果執(zhí)行失敗,則是因?yàn)槟阈薷牧藄p_columns.sql的內(nèi)容,將原文復(fù)制過(guò)去再執(zhí)行。
? ? 3、ESHOP版本中的文章數(shù)據(jù)也同樣可以轉(zhuǎn)換,因本人手中沒(méi)有ESHOP版本的數(shù)據(jù)庫(kù),所以沒(méi)有測(cè)試,有需要的朋友可以根據(jù)這個(gè)程序按例改寫(xiě)程序便可。
? ? 4、原動(dòng)易數(shù)據(jù)中(如文章中a)如果有“/”、“\”等符號(hào)可能導(dǎo)致轉(zhuǎn)換失敗,請(qǐng)先修復(fù)原動(dòng)易數(shù)據(jù)。
? ?? ?? ?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 = '經(jīng)濟(jì)日?qǐng)?bào)',paginationtype = '0',maxcharperpage = '' at line 1
MySQL Errno:1064
Message:MySQL Query Error
? ?? ?? ?這個(gè)錯(cuò)誤是由于記錄中有的域中有非法字符如:"/"、"\" ,或是找到對(duì)應(yīng)的記錄刪除了就沒(méi)錯(cuò)了
? ? 5、如果服務(wù)器不方便,不能直接轉(zhuǎn)MSSQL,需要導(dǎo)出到ACCESS,請(qǐng)注意以下幾點(diǎn)
準(zhǔn)備一個(gè)空的PowerEasy2006.mdb,所謂空,是里面所有表的記錄都刪除空了,如果不這樣做,在導(dǎo)出時(shí)就一定要在映射中選擇刪除表中所有記錄。
或是準(zhǔn)備一個(gè)空的MDB數(shù)據(jù)庫(kù),導(dǎo)出時(shí)重新建表,這樣操作更復(fù)雜一些,需要一定的專(zhuān)業(yè)知識(shí)
如果你在動(dòng)易中建了其他的頻道,PE_Admin 最后生增加幾個(gè)新列,可以手工PowerEasy2006.mdb加上,也可以忽略。
錯(cuò)誤 0xc0202009: {20121A51-ED90-4F25-A740-75F912CE40AD}: SSIS 錯(cuò)誤代碼 DTS_E_OLEDBERROR。出現(xiàn) OLE DB 錯(cuò)誤。錯(cuò)誤代碼: 0x80004005。
已獲得 OLE DB 記錄。源:“Microsoft JET Database Engine” Hresult: 0x80004005 說(shuō)明:“未指定的錯(cuò)誤”。
如果出現(xiàn)這樣的錯(cuò)誤,是一次執(zhí)行的表太多了的緣故,可以一次導(dǎo)出1/3的表,分3次導(dǎo)完。
? ? 6、如果轉(zhuǎn)換錯(cuò)誤,請(qǐng)?jiān)趐hpMyAdmin對(duì)應(yīng)數(shù)據(jù)庫(kù)中SQL處執(zhí)行如下語(yǔ)句,便可重新進(jìn)行轉(zhuǎn)換。
前提是你安裝時(shí)選用的是默認(rèn)安裝,用PHPCMS做為用戶(hù)名
復(fù)制內(nèi)容到剪貼板
代碼:
- TRUNCATE?`phpcms_announce`;
- TRUNCATE?`phpcms_category`;
- TRUNCATE?`phpcms_link`;
- TRUNCATE?`phpcms_special`?;
- Delete?FROM?`phpcms_channel`?Where?`phpcms_channel`.`channelid`?>9;
- Delete?FROM?`phpcms_member`?Where?`phpcms_member`.`userid`?>1;
- Delete?FROM?`phpcms_member_info`?Where?`phpcms_member_info`.`userid`?>1;
??? 7、其他未盡事宜,還望各位同仁多加測(cè)試,如有錯(cuò)誤,請(qǐng)說(shuō)明錯(cuò)誤原因,截圖跟貼。
使用步驟:
1、下載本程序
2、假定已安裝PHPCMS,并可以正常使用
3、將本程序解壓到PHPCMS根目錄(正常解壓為/pe2phpcms)
4、準(zhǔn)備數(shù)據(jù)庫(kù),ACCESS要拷貝到網(wǎng)站用戶(hù)有訪(fǎng)問(wèn)權(quán)利的目錄下,本機(jī)轉(zhuǎn)換任何路徑均可
MSSQL測(cè)試訪(fǎng)問(wèn)權(quán)限
5、修改CONFIG.PHP一般而言,只需要修改本程序中的配置
6、開(kāi)始轉(zhuǎn)換
本程序的主要修正:
1、修正了舊版的轉(zhuǎn)換程序只能轉(zhuǎn)成PHPCMS Sp5而不能轉(zhuǎn)到PHPCMS Sp6的錯(cuò)誤;
2、修正了舊版程序在數(shù)據(jù)量大時(shí)出現(xiàn)超時(shí)的問(wèn)題;
3、增加了舊版程序中的提示與統(tǒng)計(jì)信息,可以更好的反映轉(zhuǎn)換狀況;
4、找到了一個(gè)PHP中有效讀取MSSQL時(shí)NTEXT類(lèi)型數(shù)據(jù)的思路,并以此解決了眾多ASP+MSSQL網(wǎng)站程序向PHP移植的問(wèn)題,尤其有數(shù)據(jù)量大的情況下,導(dǎo)出Access出錯(cuò)時(shí),這種辦法尤為重要
5、順利實(shí)現(xiàn)了MSSQL版向PHPCMS的轉(zhuǎn)移。
6、針對(duì)于轉(zhuǎn)換過(guò)程中遇到的種種問(wèn)題,一方面修改了程序中的幾處不嚴(yán)謹(jǐn)?shù)牡胤?,另一方面給出了解決辦法。
7、針對(duì)于動(dòng)易開(kāi)源的SiteWeaver CMS6.5,也實(shí)現(xiàn)了ACCESS與MSSQL兩種版本的的順利轉(zhuǎn)移。
8、花費(fèi)了大量的時(shí)間,在15萬(wàn)條數(shù)據(jù)的基礎(chǔ)上,對(duì)于程序進(jìn)行了細(xì)致的測(cè)試,確保有較少的BUG。
(原貼不能修改了,5月2日重新上傳了,大家請(qǐng)重新下載)
落伍下載:
http://www.im286.com/thread-2554988-1-2.html
PHPCMS下載:
http://bbs.phpcms.cn/thread-56184-1-1.html
經(jīng)測(cè)試,文章系統(tǒng)已經(jīng)真正實(shí)現(xiàn)完美轉(zhuǎn)換??!
而圖片和下載由于我沒(méi)有更多的數(shù)據(jù),所以不能盡善盡美
請(qǐng)各位同好相測(cè)!
本樓主要是發(fā)布后修正的錯(cuò)誤??!
相應(yīng)下載在1樓!
完美動(dòng)易2006 Sp6??SiteWeaver CMS6.5 Access MSSQL轉(zhuǎn) PHPCMS 2007 SP6 程序??Bulid 2008-5-2
代碼:
- 2008-4-27修正兩處錯(cuò)誤:
- 1、友情鏈接不能轉(zhuǎn)換的問(wèn)題
- 2、增加了開(kāi)始時(shí)間和結(jié)束時(shí)間,大家可以算算N萬(wàn)數(shù)據(jù)需要多少時(shí)間轉(zhuǎn)換完成
代碼:
- 2008-5-2修正以下多處錯(cuò)誤(主要是文章頻道)
- 1、PHPCMS后臺(tái)全顯示圖(標(biāo)志)的問(wèn)題(已解決)
- 2、默認(rèn)圖片目錄的問(wèn)題(已解決)
- 3、縮略圖的問(wèn)題(已解決),與上一個(gè)問(wèn)題其實(shí)是相同的,參見(jiàn)CONFIG.PHP中的相應(yīng)配置
- /原動(dòng)易的安裝目錄,如"/web/",如果是網(wǎng)站根目錄則是"/"
- define("PE_PATH","/";
- //??????設(shè)置下面這個(gè)變量的主要原因是是否改變動(dòng)易上傳文件/頻道名/UPLOADFILE_XXXX/路徑
- //??????動(dòng)易用
- //??????設(shè)置為0的時(shí)候,文章內(nèi)的圖片保存在原來(lái)的位置不動(dòng),適用于動(dòng)易安裝在子目錄中
- //??????設(shè)置為1的時(shí)候,在根目錄下安裝的動(dòng)易也不需要改變路徑
- //??????設(shè)置為2的時(shí)候,將原來(lái)的上傳目錄修改為以下格式
- //???????/uploadfile/article/uploadfile/200805/20080501112706322.jpg
- $_CONFIG['pe_uploadpath']?=?0;
- 4、簡(jiǎn)介不能轉(zhuǎn)換的問(wèn)題(已解決)
- 5、外部鏈接類(lèi)型不能正常跳轉(zhuǎn)的問(wèn)題(已解決)
- 6、keyword?頭尾都有,號(hào)的問(wèn)題(已解決)
- 7、標(biāo)題顏色的問(wèn)題(已解決)
- 8、來(lái)源問(wèn)題(已解決)
- 9、文章特性,主要是推薦文章和置頂文章(已解決)
- 10、作者?信息不對(duì)(已解決)
- 11、修正了頻道和欄目的排序和不顯示欄目的屬性問(wèn)題
- 12、SEO_Keywords?SEO_Description中HTML代碼需要手工去除
- 13、修正了頻道與欄目中的其他多個(gè)錯(cuò)誤
完美動(dòng)易2006 Sp6 SW6.5 Access MSSQL轉(zhuǎn) PHPCMS 2007 SP6 程序2008-5-2點(diǎn)擊下載此文件
問(wèn)題未解決?付費(fèi)解決問(wèn)題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信
所寫(xiě)所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!