簡體   English   中英

PHP +將多行從.csv保存到mysql

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM