Я пытаюсь загрузить .csv
файл и сохранить каждую строку в mysql
db. Поэтому для каждой строки в .csv
файле я хотел бы создать строку в моей mysql
db. Извините мой английский, но я надеюсь, что вы поняли, что я имею в виду.
Я до сих пор, что я могу получить данные из первой строки:
$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 отлично поработало, но мне пришлось добавить LOCAL в команду infile, чтобы я мог получить доступ к файлу 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)