Почему вы хотите вставить все записи одним оператором? Вы можете использовать подготовленное утверждение:
INSERT INTO multimedia (имя файла, регулярное выражение, флаг) VALUES (?,?,?);
и цикл for для вставки записей одна за другой.
Я не программист PHP, но код может выглядеть следующим образом (части взяты из http://php.net/manual/en/pdo.prepared-statements.php):
$stmt = $dbh->prepare("INSERT INTO multimedia (filename, regex, flag) VALUES (:filename, :regex, :flag)");
$stmt->bindParam(':filename', $filename);
$stmt->bindParam(':regex', $regex);
$stmt->bindParam(':flag', $flag);
for ( $i = 1; $i <= ...; $i++) {
$filename = ...
$regex = ...
$flag = ...
$stmt->execute();
}
Используя подготовленный оператор, СУБД компилирует SQL только один раз, как это было бы с вашим оператором SQL. Чтобы убедиться, что все или никакие записи вставлены (если вам все равно нужно такое утверждение), используйте транзакцию.
Кроме того, это также решит проблему с экранированием, поскольку вам не нужно помещать значения в строку. Строка для подготовленного оператора определяет только SQL-шаблон.