ファイルをアップロードして、.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);
}
アップデート
every1に知らせるだけです。@GregPのソリューションはうまく機能しましたが、サーバーにアップロードされたcsvファイルにアクセスできるように、infileコマンドにLOCALを追加する必要がありました。
LOAD DATA LOCAL INFILE '$targetPath' INTO TABLE tableName FIELDS TERMINATED BY ';' (name,url,type,descr)