Это какой-то ужас, а не код. Здесь всё неправильно.
Не нужно никаких временных таблиц, не нужно multi_query (эта функция
вообще никогда не нужна). Запросы надо исполнять с помощью подготовленных выражений.
Запрос нужен всего
один.
$sql = "INSERT INTO texts SELECT null, page_id, ballon_no, text_lang, font_size, html_left,
html_top, html_width, html_height, ?, rotate, text_align, aspect_ratio,
position_ratio, calc_width, calc_left, font_color, line_height, font_type
FROM texts WHERE id=?";
$stmt = $link->prepare($sql);
$stmt->bind_param("ss", $text, $id);
foreach ($array as $id => $text) {
$stmt->execute();
}