Задать вопрос

Как на php выполнить сразу несколько SQL запросов?

Возникла такая проблема. Необходимо сделать UPDATE запрос для нескольких записей в таблице. Точнее сказать для нескольких десятков записей. К примеру таблица заказов (в интернет-магазине) и нужно обновить статусы сразу нескольких заказов (скажем при выгрузке этих статусов из 1с). Соответственно, нужно сделать несколько UPDATE запросов. Используя php функцию mysql_query это можно сделать только так: вызвать ее в цикле нужное количество раз, передав ей UPDATE запрос. В итоге если нужно обновить статусы 1000 заказов, то будет 1000 запросов к бд, что мне видится не очень хорошим решением. Сформировать один большой запрос из UPDATE-ов, разделив из точкой с запятой нельзя, т.к. mysql_query может выполнить только один запрос за раз. Как быть в данной ситуации? Выполняя запрос описанным выше способом я получаю 504-ую ошибку. Не нравится нашему серверу что идет столько запросов в один момент времени.
  • Вопрос задан
  • 10040 просмотров
Подписаться 3 Оценить Комментировать
Решение пользователя Codebaker К ответам на вопрос (6)
@Codebaker
Всё умею, всё могу!
UPDATE your_table SET status=new_status WHERE order_id IN (id,ваших,тысячи,заказов,указанные,через,запятую)

В чем проблема-то? Работайте в рамках теории множеств, уходите от циклов при работе с БД и будет вам счастье.
Ответ написан