Andrey3681
Новичок
Как правильно сделать:
есть файл csv 500000 строк, каждый день добавляются примерно 20000 и изменяются имеющиеся
Нужно каждый день обновлять БД до актуальной
Перед загрузкой очищаю БД. Загрузка по столбцу INSERT первый столбец, потом header("Location:".$url); на ту же страницу с GET параметром, по которому запускаю UPDATE второй и т.д
Если без перенаправления 504 Gateway Time-out
Или правильней сравнивать строки с БД, если строрка изменилась UPDATE, если нету INSERT
Скрипт нужно запускать Cron
Или как вообще можно реализовать задуманое?
есть файл csv 500000 строк, каждый день добавляются примерно 20000 и изменяются имеющиеся
Нужно каждый день обновлять БД до актуальной
Перед загрузкой очищаю БД. Загрузка по столбцу INSERT первый столбец, потом header("Location:".$url); на ту же страницу с GET параметром, по которому запускаю UPDATE второй и т.д
Если без перенаправления 504 Gateway Time-out
PHP:
$truncate = "TRUNCATE TABLE femida_edrsr_documents";
$mysqli->query($truncate);
if (($handle = fopen("database_EDRSR/documents.csv", "r")) !== FALSE) {
while (($dataFile = fgetcsv($handle, 0, "\t")) !== FALSE) {
$num = count($dataFile);
$doc_id .= $dataFile[0].",";
}
fclose($handle);
}
$doc_id = explode(",", $doc_id);
$count = count($doc_id) - 2;
for($i = 1; $i <= $count; $i++)
{
$values .= "('".str_replace("'", "’", $doc_id[$i])."'),";
}
$values = substr($values, 0, -1);
$insert = "INSERT INTO femida_edrsr_documents (doc_id) VALUES $values";
$mysqli->query($insert);
Скрипт нужно запускать Cron
Или как вообще можно реализовать задуманое?