Cita: PHP Fatal error: Uncaught exception 'PDOException'
Básicamente se está dando una excepción que no has capturado.
Antes de avanzar, usa un buen manejo de excepciones, que pDO lo tiene, y de esa forma al menos podrás recuperar el error de ejecución que se está presentando.
Por lo demás, San Google responde:
Cita: SQLSTATE[24000]:
No cursor was open on the StatementHandle. (This is returned only by an ODBC 3.x driver.)