Итак, у меня есть скрипт, который импортирует CSV-файлы в таблицу контактов в базе данных.
Я создал скрипт, который будет захватывать кусок CSV и обрабатывать его, обновлять таблицу очередей с ее прогрессом, а затем использовать cron для регулярного запуска, чтобы он мог по существу обрабатывать файл любого размера.
В любом случае, я ограничил его тем, что одновременно выполняю только 1000 строк, чтобы не допустить его падения. Это работает очень хорошо, но у меня был кто-то, кто пытался загрузить CSV с большим количеством полей, чем обычно, что означает, что 1 строка CSV намного больше, чем обычно.
Когда я передаю данные в функцию для создания запроса для помещения его в базу данных, я получаю сообщение об ошибке «недостаточно памяти» для функции substr (), когда она завершает запрос.
$q = substr($q, 0, -1);
К этому моменту в сценарии $ q становится довольно большим, что, похоже, убивает его. Любая идея, как отрубить последний символ, не загружая всю переменную в память? Кроме простого уменьшения размера партии?