MYSQL數(shù)據(jù)庫(kù)都是導(dǎo)入導(dǎo)出的,MSSQL也是,不需要上傳的,直接導(dǎo)就可以了!
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括泊頭網(wǎng)站建設(shè)、泊頭網(wǎng)站制作、泊頭網(wǎng)頁(yè)制作以及泊頭網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,泊頭網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到泊頭省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
方法/步驟
1
登錄到phpMyAdmin
2
新建一個(gè)要導(dǎo)入的數(shù)據(jù)庫(kù),點(diǎn)擊“+new”
3
如圖,分別填寫(xiě)數(shù)據(jù)庫(kù)名稱(chēng),以及選擇數(shù)據(jù)庫(kù)的排序規(guī)則,
4
完成步驟3,點(diǎn)擊“創(chuàng)建”
5
完成步驟4,從右側(cè)就可以看到我們新創(chuàng)建的數(shù)據(jù)庫(kù)了,如果沒(méi)有立即顯示,刷新即可立馬顯示了。
6
單擊我們新創(chuàng)建的數(shù)據(jù)庫(kù),
7
然后,我們選擇“導(dǎo)入”,
8
完成步驟7,我們點(diǎn)擊“選擇文件”,
9
點(diǎn)擊了“選擇文件”之后,就會(huì)出現(xiàn)如圖所示的彈出框,我們選擇要導(dǎo)入的sql就可以了,后綴名可以是.sql,也可以是壓縮文件.zip。如圖,選擇好文件之后,點(diǎn)擊“確定”就可以了
10
完成步驟⑨,你就可以從剛才的頁(yè)面中看到自己上傳的文件了,如圖所示,其余選項(xiàng)默認(rèn)就可以了,然后點(diǎn)擊“執(zhí)行”就可以了。
11
這個(gè)時(shí)候,你就可以看到你的數(shù)據(jù)已經(jīng)導(dǎo)入到你新創(chuàng)建的數(shù)據(jù)庫(kù)中了
一、一般步驟
1、用phpADMIN生成CSV格式文件
以PHP+MySQL模式建立個(gè)人主頁(yè)的讀者,在自己的機(jī)器上都有PHP+MySQL環(huán)境吧?就在這個(gè)環(huán)境下,用phpADMIN生成以分號(hào)為分隔符的dotmud.csv文件。
2、將dotmud.csv文件通過(guò)FTP上傳到服務(wù)器。
3、上傳data.php程序(程序附后),在瀏覽器調(diào)用data.php程序,將dotmud.csv文件的內(nèi)容加入到數(shù)據(jù)庫(kù)。
二、特殊處理
一般的數(shù)據(jù),通過(guò)上述步驟,基本可以順利上傳。但對(duì)于包含特殊字符的數(shù)據(jù)(比如數(shù)據(jù)庫(kù)記錄中包含換行符、單引號(hào)、分號(hào)),就要做些特殊的處理。
1、換行符的處理
PHP的fgetcsv()函數(shù)以換行符作為每行的結(jié)束標(biāo)志。如果MySQL數(shù)據(jù)表的記錄包含換行符,fgetcsv()就不能完整讀取記錄行。
筆者的解決方法是修改phpADMIN的lib.inc.php3文件(讀者也可以不修改phpADMIN文件,而是用其他方法直接加工phpADMIN生成的dotmud.csv文件,達(dá)到同樣的效果)的get_table_csv()函數(shù):
在 $schema_insert=ereg_replace($sep."$","",$schema_insert) 行后加入如下命令行
$schema_insert=ereg_replace("\r\n","`return`",$schema_insert)
將換行符轉(zhuǎn)換為不容易出現(xiàn)的換行標(biāo)識(shí)串`return`(讀者可根據(jù)自己數(shù)據(jù)的特點(diǎn)設(shè)置獨(dú)特的換行標(biāo)識(shí)串),再在data.php程序中加一行命令$data[$i]=ereg_replace("`return`","\r\n",$data[$i]),用來(lái)將換行標(biāo)識(shí)串還原成換行符。
2、分隔符的處理
如果MySQL記錄行恰好包含CSV分隔符,fgetcsv()進(jìn)行分隔處理時(shí)就會(huì)出現(xiàn)問(wèn)題。
筆者仍然是通過(guò)修改lib.inc.php3文件解決的。
在get_table_csv()的$schema_insert="$row[$j]".$sep行前加一行
$row[$j]=ereg_replace($sep,"`return_sep`",$row[$j]) 命令,將分隔符轉(zhuǎn)為分隔標(biāo)識(shí)串`return_sep`,同時(shí)在data.php中用命令行 $data[$i]=ereg_replace("`return_sep`",";",$data[$i]) 進(jìn)行還原處理。
3、單引號(hào)的處理
MySQL的SQL語(yǔ)句行對(duì)單引號(hào)有特殊的定義,如果直接提交含單引號(hào)的SQL語(yǔ)句,就會(huì)出錯(cuò)。這種情況需要加上轉(zhuǎn)義符。在data.php中加一行 $data[$i]=ereg_replace("'","\'",$data[$i]) 就可解決。
另外,在數(shù)據(jù)記錄特別多的的情況下,dotmud.csv文件可能比較大,如果在服務(wù)器的限定時(shí)間內(nèi)不能執(zhí)行完data.php程序,就需要按行分拆dotmud.csv。如筆者有個(gè)7000行的dotmud.csv文件,在自己的機(jī)器上執(zhí)行到600行就提示超時(shí),便拆成10個(gè)文件上傳到全路互聯(lián)(),結(jié)果對(duì)方的服務(wù)器速度快,每個(gè)文件的處理時(shí)間還不到1秒,而php默認(rèn)的限定執(zhí)行時(shí)間可是30秒啊!看來(lái)我做的分拆實(shí)屬多余。
以上方法解決了數(shù)據(jù)庫(kù)內(nèi)容的上傳問(wèn)題。對(duì)于數(shù)據(jù)庫(kù)結(jié)構(gòu)的上傳,只要稍微修改一下data.php程序就可實(shí)現(xiàn)。其實(shí),如果庫(kù)結(jié)構(gòu)比較簡(jiǎn)單,用phpADMIN更方便