для ответа KB22 и rojoca, причина, по которой мне нужно сделать это таким образом, заключается в том, что «файл», на который я ссылаюсь, на самом деле является базой данных sqlite, которая в конечном итоге становится хранилищем данных на мобильном устройстве.
Первый запрос отправляет обновленную базу данных sqlite на сервер, который пытается объединить данные из таблиц sqlite; проблемы возникают, когда мобильное устройство не получает новую базу данных sqlite (которая отражает изменения мобильного устройства и любые другие новые данные из веб-приложения), поскольку оно затем попытается отправить ту же (старую) базу данных sqlite в во второй раз, что приводит к дублированию записей в веб-таблицах для всего, что было создано на мобильном устройстве.
Итак, Интернет должен быть уверен, что устройство имеет новую базу данных, прежде чем вносить изменения слияния. Учитывая капризы сетей, это только кажется возможным, если устройство может отправить явный ACK после получения новой базы данных sqlite. И это возможно только в том случае, если мы сделаем два запроса (1. база данных sqlite для слияния; 2. подтверждение получения новой базы данных sqlite на устройстве).
Действительно сложная проблема, и полезная информация о том, что PHP не может манипулировать дескрипторами базы данных до необходимого уровня.
[Я также не думаю, что смогу использовать таблицу транзакций, потому что мне нужно возвращать данные на устройство на основе «реальных» таблиц веб-базы данных. Я думаю, что я столкнулся бы с проблемами с полями auto_increment, если бы я не использовал реальные таблицы]
Спасибо за все ваши комментарии.