[英]PHP + Save multiple rows from .csv to mysql
我正在嘗試上傳.csv
文件,然后將每一行保存到mysql
數據庫中。 因此,對於.csv
文件中的每一行,我想在mysql
數據庫中創建一行。 不好意思,但是我希望你能理解我的意思。
到目前為止,我已經能夠從第一行獲取數據:
$path = $targetPath;
$row = 1;
if (($handle = fopen($path, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$row++;
$dataEntries[] = $data ;
}
fclose($handle);
} else{
echo("There has been an error parsing ".$csvname);
}
//Everything seems to be okay, we can save it
foreach($dataEntries as $line){
$oName = $line[0];
$oUrl = $line[1];
$oType = $line[2];
$oDescr = $line[3];
//If there is just one row in the csv file, Output: "string"
//If there are more rows, than the output is "stringstring1string2"
echo($oName);
}
更新
只是讓所有人知道:@Greg P的解決方案效果很好,但是我必須在infile命令中添加LOCAL,這樣我才能訪問上載到服務器的csv文件:
LOAD DATA LOCAL INFILE '$targetPath' INTO TABLE tableName FIELDS TERMINATED BY ';' (name,url,type,descr)
為什么不使用LOAD DATA INFILE,如下所示:
LOAD DATA INFILE 'filename.csv'
INTO TABLE filenames
FIELDS TERMINATED BY ','
(Name, Url, Type, Descr)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.