我正在處理一個腳本,該腳本通常會將CSV文件上傳到MySQL數據庫。問題在於,CSV文件中的一個字段包含用戶生成的文本,其中可能包含對MySQL不友好的引用和其他字符。在將LOAD INFILE轉換爲MySQL之前轉義CSV文件
我確定上傳CSV文件的最有效方法是通過MySQL的'LOAD DATA INFILE'命令。下面是一個命令,它出現在MyPHPAdmin當我上傳CSV:
LOAD DATA LOCAL INFILE '/home/myfolder/tmp/property_re_1.csv' REPLACE INTO TABLE `markers`
FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\'
LINES TERMINATED BY '\r\n' # 2 rows affected.
簡單加載CSV使用此命令不起作用,作爲過程,因爲它運行儘快終止於「」「和」 ESCAPED BY'\'「似乎沒有達到其目的
在這種情況下,我想我可能必須先用PHP以編程方式將PHP文件中的引號轉義,然後將」Escaped「文件加載到MySQL在SQL中使用LOAD DATA INFILE命令
我確定這是一個常見問題,它有一個「最佳實踐」解決方案。本質上,我的腳本需要t o在將CSV文件加載到MYSQL表中之前,先「清理」一個CSV文件。
下面是實際的SQL表和CSV文件我一起工作的鏈接,幫助聰明的頭腦包住他們的頭這一個辦法:https://www.dropbox.com/sh/4iq10i51qlqyq8q/UjEQwvXKDA
感謝您的幫助提前。
哪些代碼正在生成CSV?如果CSV生成正確,則不會有任何問題。如果CSV沒有正確生成,修復CSV生成器可能是最簡單的。如果該文件是用戶定義的,那麼您不僅僅需要擔心一個字段。 –
CSV由我無法更改的外部數據庫生成, – AME