色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

查詢換行 mysql,加工中心發(fā)那可系統(tǒng)傳程序

錢浩然2年前21瀏覽0評論
查詢換行 mysql,加工中心發(fā)那可系統(tǒng)傳程序?

一、一般步驟

1、用phpADMIN生成csv格式文件

以PHP+MySQL模式建立個人主頁的讀者,在自己的機器上都有PHP+MySQL環(huán)境吧?就在這個環(huán)境下,用phpADMIN生成以分號為分隔符的dotmud.csv文件。

2、將dotmud.csv文件通過FTP上傳到服務(wù)器。

3、上傳data.php程序(程序附后),在瀏覽器調(diào)用data.php程序,將dotmud.csv文件的內(nèi)容加入到數(shù)據(jù)庫。

二、特殊處理

一般的數(shù)據(jù),通過上述步驟,基本可以順利上傳。但對于包含特殊字符的數(shù)據(jù)(比如數(shù)據(jù)庫記錄中包含換行符、單引號、分號),就要做些特殊的處理。

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)識串`return`(讀者可根據(jù)自己數(shù)據(jù)的特點設(shè)置獨特的換行標(biāo)識串),再在data.php程序中加一行命令$data[$i]=ereg_replace("`return`","\r\n",$data[$i]),用來將換行標(biāo)識串還原成換行符。

2、分隔符的處理

如果MySQL記錄行恰好包含CSV分隔符,fgetcsv()進(jìn)行分隔處理時就會出現(xiàn)問題。

筆者仍然是通過修改lib.inc.php3文件解決的。

在get_table_csv()的$schema_insert="$row[$j]".$sep行前加一行

$row[$j]=ereg_replace($sep,"`return_sep`",$row[$j]) 命令,將分隔符轉(zhuǎn)為分隔標(biāo)識串`return_sep`,同時在data.php中用命令行 $data[$i]=ereg_replace("`return_sep`",";",$data[$i]) 進(jìn)行還原處理。

3、單引號的處理

MySQL的SQL語句行對單引號有特殊的定義,如果直接提交含單引號的SQL語句,就會出錯。這種情況需要加上轉(zhuǎn)義符。在data.php中加一行 $data[$i]=ereg_replace("'","\'",$data[$i]) 就可解決。

另外,在數(shù)據(jù)記錄特別多的的情況下,dotmud.csv文件可能比較大,如果在服務(wù)器的限定時間內(nèi)不能執(zhí)行完data.php程序,就需要按行分拆dotmud.csv。如筆者有個7000行的dotmud.csv文件,在自己的機器上執(zhí)行到600行就提示超時,便拆成10個文件上傳到全路互聯(lián)(www.wayall.com),結(jié)果對方的服務(wù)器速度快,每個文件的處理時間還不到1秒,而php默認(rèn)的限定執(zhí)行時間可是30秒啊!看來我做的分拆實屬多余。

以上方法解決了數(shù)據(jù)庫內(nèi)容的上傳問題。對于數(shù)據(jù)庫結(jié)構(gòu)的上傳,只要稍微修改一下data.php程序就可實現(xiàn)。其實,如果庫結(jié)構(gòu)比較簡單,用phpADMIN更方便。