助けが必要です。 複数のレコード/行を含むCSVファイルをアップロードしていて、phpとmysqlを使用してデータベースに挿入したいとします。 csvをご覧ください。 アップロードされたCSVファイルの複数のレコードは、1つの配列のみを返します
ご覧のとおり、テーブルにフェッチして挿入したいレコードが3つあります。
ただし、このファイルを作成すると、1つの配列しか返されません。 これはリターンです:
["1","1","1234","12\/1\/2017\r2","2","5678","12\/25\/2018\r3","3","13323","1\/1\/2020"]
誰も私を助けることができますか? ここに私のコードです:
if(isset($_POST["Import"])){
$filename=$_FILES["file"]["tmp_name"];
if($_FILES["file"]["size"] > 0)
{
$file = fopen($filename, "r");
while (($getData = fgetcsv($file, 10000, ",")) !== FALSE)
{
$sql = "INSERT INTO cardtbl (cardid,cardno,cardpin,expdate,datecreated)
VALUES ('".$getData[0]."','".$getData[1]."','".$getData[2]."','".$getData[3]."','".$today."')";
// $result = mysql_query($sql);
if(!isset($result))
{
echo "<script type=\"text/javascript\">
alert(\"Invalid File:Please Upload CSV File.\");
<!--window.location = \"cardlist.php\"-->
</script>";
}
else {
echo "<script type=\"text/javascript\">
alert(\"CSV File has been successfully Imported.\");
window.location = \"cardlist.php\"
</script>";
}
}//end
fclose($file);
}
}
ありがとう!
ファイルの先頭に
ini_set("auto_detect_line_endings", true);
を使用してauto_detect_line_endings
を有効にする必要がありますが、それは追加の空白のレコードを返します:[「1」、「1」、「1234」を、 「12」、「3」、「13323」、「1 \/2」、「1」、「2」、「2」、「5678」、「12 \/1 \/2017」、 1 \/2020 "] [null] –大きな単一の配列ではなく、複数の配列になっているので、正確な出力は何ですか?最後の '[null]'の追加配列は、おそらくファイルの最後に追加行があるためです –