По моему опыту многострочные вставки обрабатываются НАМНОГО быстрее, чем эквивалентное число однострочных вставок, если вы вставляете большое количество данных за раз, это хороший способ. Я наблюдал, как с помощью этого метода процесс ввода тысяч строк данных сокращался от 5-10 минут до буквально секунд.
Что касается части кода, я был поклонником использования implode () для объединения массивов полей и значений. Нет причин, по которым вы не можете сделать то же самое для строк данных, вам просто нужно уметь определять, какие поля должны быть заключены в кавычки, экранированы и т. Д.
Ради аргумента предположим, что $ row - это массив правильно отформатированных значений SQL ...
$sql = "INSERT INTO `table` VALUES (" . implode("), (", $rows) . ")";
Вы можете применить что-то похожее, чтобы собрать отдельные поля, если хотите.