Tente depurar o problema. Isso pode ser causado por qualquer número de coisas. Comumente existem:
- O servidor MySQL travou
- Um problema de comunicação entre o cliente e o servidor
- Abusar da biblioteca cliente de maneira não intencional, talvez enviando comandos fora de ordem ou enviando lixo pelo soquete.
Da última vez que usei, o driver PDO era bastante flakey e foi possível criar o último caso.
Se o problema de comunicação estiver provavelmente em produção, seu aplicativo deverá se reconectar e tentar novamente a transação.