我想將從網站下載的數據存儲到我的mysql數據庫中。PHP。將下載的csv傳輸到mysql數據庫 - 如何將下載的csv文件存儲在php內存中
我用我的功能 「CallAPI(」 GET 「$網址,$數據= FALSE)」 使用的URL,例如 「http://www.xflow1.com/xGlobalHist.csv/」 來訪問數據庫...
因此,我調用$結果= CallAPI ($ method,$ url,$ data = false);返回保存在變量「$ results」中的逗號分隔數組。我可以在網頁中顯示$結果,並向我顯示數據,所有逗號都是分隔的。所有的好,直到這裏。
添加到CSV上傳到我的mysql數據庫我想用「LOAD DATA INFILE」功能,像這樣:
$upload = <<<eof
LOAD DATA INFILE $results
INTO TABLE X_Adjusted_All
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(Cusip, Date, Price)
eof;
的障礙出現的「LOAD DATA INFILE $結果」不作爲LOAD DATA工作INFILE只需要一個文件名,所以我想將$結果作爲csv文件存儲在內存中,以避免始終創建和刪除文件。我認爲這可能有效:
$fp = fopen('php://memory', 'w');
fputcsv($fp, $results);
唉,有沒有人有任何想法如何將下載的csv文件作爲csv文件保存到phps內存以便在LOAD DATA INFILE函數中使用?
你有沒有原因不使用普通文件? – andy 2014-11-02 11:57:50
你不能用PHP分配一部分內存,然後讓MySQL使用LOAD DATA INFILE讀取它。你可以做什麼,如果你的表現達到這個水平 - 創建一個RAM驅動器並將csv文件保存在那裏。然後讓MySQL讀取它。 – 2014-11-02 12:00:08
@Andy的反思我認爲我的問題是,我可以下載數據罰款時,我調用該行中的函數:$結果= CallAPI(「GET」,$ url,$ data = false),但我不能做任何與變量$結果中的後續數據。我只是不知道如何將$結果保存爲csv文件。 – Mark 2014-11-02 12:48:20