С этим решением вы отправите до 12 запросов на вставку в базу данных, что означает до 12 вызовов между PHP и MySQL.
Возможно, более быстрым способом было бы отправить только один запрос SQL, который бы вставлял несколько строк одновременно.
Этот SQL-запрос будет выглядеть так:
INSERT INTO project_images (image_name, project_id)
VALUES ('image name 1', 'id_1'),
('image name 2', 'id_2'),
('image name 3', 'id_3'),
('image name 4', 'id_4')
См. 12.2.5. INSERT Syntax в руководстве MySQL - есть пример такого запроса.
Это означает, что вы могли бы сначала изменить свой код, чтобы построить этот запрос; и только потом вызывайте MySQL один раз.
Не проверено, но я полагаю, что ваш файл мог бы выглядеть примерно так:
$values = array();
$directory = "portfolio_images/$id/Thumbs/";
$images = glob("" . $directory . "*.jpg");
for ( $i= 0; $i <= count($images); $i += 1) {
$values[] = "('$images[0]', '$id')";
}
$values_str = implode(', ', $value);
mysql_query("INSERT INTO project_images (image_name, project_id) VALUES $values_str") or die(mysql_error());