Я пишу скрипт PHP, который импортирует данные CSV от множества клиентов. Данные имеют 12 строк и 10 столбцов (см. Ниже). Когда я использую импорт MySQL phpMyAdmin, нет проблемы (все 12 строк импортируются в порядке!) Однако, когда я пытаюсь импортировать с использованием PHP-скрипта, он импортирует только первую строку или последнюю строку. У меня есть много разных способов написать один и тот же скрипт безрезультатно. Цель состоит в том, чтобы пользователь мог автоматически загружать CSV в таблицу.Импорт CSV-файла в MySQL с помощью PHP
if ($_FILES[csv][size] > 0) {
//get the csv file
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
//loop through the csv file and insert into database
do {
if ($data) {
mysql_query("INSERT INTO summary_td (customer_id, month, Income, Savings, Revolving_Expenses, Utilities, Services, Luxuries, Charities, month_id) VALUES
(
'".addslashes($data[0])."',
'".addslashes($data[1])."',
'".addslashes($data[2])."',
'".addslashes($data[3])."',
'".addslashes($data[4])."',
'".addslashes($data[5])."',
'".addslashes($data[6])."',
'".addslashes($data[7])."',
'".addslashes($data[8])."',
'".addslashes($data[9])."'
)
");
}
} while ($data = fgetcsv($handle,1000,",","'"));
//redirect
header('Location: import.php?success=1'); die;
}
?>
CSV данных:
1, январь, 5000,899,899,899,899,899,899,1 1, февраль, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2 1, Март, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3 1, April, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4 1, May, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5 1, Июнь, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6 1, Июль, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7 1,ugust, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8 1, сентябрь, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9 1, октябрь, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10 1, ноябрь, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 11 1, декабрь, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12
[Другой способ, чтобы написать сценарий] (http://stackoverflow.com/questions/11448307/importing-csv-data-using-php-mysql) – Terminus
использование if ($ data [0]) вместо if ($ data) –
@William, спасибо за Ответить! Я попробовал это. Никаких изменений в выходе данных. Он по-прежнему добавляет только первую строку. – esneaker