Простое гугление:
https://www.google.ru/search?q=%22Commands+out+of+... первой же ссылкой приводит нас к ответу: ошибка выпадает от того, что "клиент пытается выполнить два возвращающих данные запроса без обращения к use_result() либо store_result() в промежутке между ними".
Второй результат поиска даёт более подробный ответ:
https://habrahabr.ru/post/21326/
Вообще, во избежание странных сайд-эффектов, я бы очень не советовал запускать новое подготовленное выражение без закрытия текущего. Т.е. сначала полностью выполняем одно подготовленный запрос, закрываем его, затем создаём новый.
Как вариант, можно открыть несколько соединений к мускулю.