最近、CSV を MySQL データベースに挿入する方法を尋ねました。LOAD DATA LOCAL INFILE を使用するように提案されましたが、私のホストではこれが無効になっていることが判明したため、もはやオプションではありません。PHPループに戻る..
挿入時に値を配列にマッピングしているため、一時アップロードの結果をループする際に問題が発生しています。したがって、複数の行では、配列の値が明示的に定義されているため、同じエントリが 2 回入力されます (最初の行の値)。
1、2、3、4 を挿入してから 1、2、3、4 を挿入しています。配列の 1、2、3、4、5、6、7、8 を挿入したいと思います。
解決策は何ですか (ハッキーな for と row++ を除く)?
前もって感謝します。
$handle = fopen($_FILES['csv']['tmp_name'], "r");
$sql = "INSERT INTO tbl (col1, col2, col3, col4) VALUES (?, ?, ?, ?)";
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$query = $db->prepare($sql);
if ($query->execute(array($data[0],$data[1],$data[2],$data[3]))) return true;
else return false;
}