Arbeitest du mit Commit/Rollback ?
Nach einem Commit/Rollback ist ein vorbereitetes Statement wieder weg, du musst also erneut einen Prepare ausführen.

Prepared Statements bleiben über Commit-Grenzen nicht erhalten.

Ggf. ist Autocommit in der Verbindung gesetzt (meistens der Default).

Stelle in deinem Programm also sicher, dass der Prepare unmittelbar vor dem Execute ausgeführt wird und sich somit im selben Commit-Zyklus befindet.