Пример.
На стороне PHP имеется массив строк:
aaa
bbb
ccc
Необходимо записать его в таблицу. Причём уложиться в один запрос. Длина списка, понятно, не фиксирована.
Первое - объединяем/сериализуем этот массив в одно значение. Допустим, выбрали JSON массив. То есть
["aaa", "bbb", "ccc"]
И именно этот JSON мы передадим в запрос.
Далее на стороне MySQL надо разобрать JSON на элементы и вставить в таблицу. Это делается одним запросом.
INSERT INTO destination_table (single_value)
SELECT single_value
FROM JSON_TABLE( ? ,
'$[*]' COLUMNS ( single_value VARCHAR(255) PATH '$' )) jsontable;
И... а, собственно, всё.
Осталось только убедиться, что размер строкового представления данных не превышает установленный в MySQL размер входящего пакета, и, если превышает, то соответствующим образом подрихтовать сессионную переменную max_allowed_packet. Впрочем, дефолтно там 67108864 байтов, это порядка 1480 байтов на элемент - должно хватить.