CONSULTE Documentação Aqui
Se você receber comandos fora de sincronia; você não pode executar este comando agora no código do cliente, você está chamando as funções do cliente na ordem errada.
Isso pode acontecer, por exemplo, se você estiver usando mysql_use_result() e tentar executar uma nova consulta antes de chamar mysql_free_result(). Isso também pode acontecer se você tentar executar duas consultas que retornam dados sem chamar mysql_use_result() ou mysql_store_result() no meio.
Você precisa usar/armazenar o resultado antes de prosseguir com a próxima consulta.
Outra alternativa é fechar a conexão e iniciá-la novamente.