Mysqli commands out of sync; як виправити щоб не було помилки

  • PHP
  • MySQL

Суть така, вчуся використовувати mysqli, раніше працював з mysql через фреймворк, тут вирішив для скриптів які в cron будуть записані написати код без фреймворку, розібратися що й до чого так і працює так швидше.

Код наступний - спочатку отримуємо дані по містах (для тестів вибірку одним конкретним обмежив

Після видаляю на основі отриманих даних записи в таблицях, які будуть оновлені новою інформацією


Тут все виконується нормально.

Далі я звертаюсь у зовнішнього сервера список готелів для цього міста

І розбираю отриманий JSON

При кожній ітерації обробляються дані по кожному отриманому готелю і збирається досить об'ємний запит в змінну $ sql (один запит на одну ітерацію)

Яку потім виконуємо так

Власне тут отримуємо помилку (багато помилок вірніше, так як цикл не зупиняється на помилку)

Але мені незрозуміло як її потрібно виправити. Пошукавши в інтернеті натикаюся на таке

A.2.12 Помилка в клієнті Commands out of sync
Якщо отримана помилка Commands out of sync; you can not run this command now в клієнтському коді, то клієнтські функції викликаються в неправильному порядку!
Це може статися, наприклад, якщо використовується mysql_use_result () і робиться спроба виконати новий запит до того, як викликана mysql_free_result (), або якщо клієнт намагається виконати два повертають дані запиту без звернення до mysql_use_result () або mysql_store_result () в проміжку між ними.
www.mysql.ru/docs/man/Commands_out_of_sync.html

Однак у мене всього один запит повертає дані (з SELECT). Після while циклу прописано

mysqli_free_result ($ query); але це буде зроблено з помилки вже.

Що я не так зрозумів або де потрібно виправити?

Схожі статті