Você diz que postou uma versão simplificada do código. Você alterou mais alguma coisa quando postou aqui? Esse erro normalmente é causado quando você tem várias consultas "abertas" ao mesmo tempo. Por exemplo, você chama
fetch() , mas você não o chama até que esteja esgotado e, em seguida, tenta recuperar uma segunda consulta. A julgar pelo seu código acima, isso não deve acontecer porque você está usando
fetchAll() . Normalmente, a solução para este problema é chamar closeCursor() [docs]
. Você pode tentar chamar isso após cada fetchAll e veja se isso faz alguma coisa.