Hallo!
Ich vermute, dass isOpen() und isValid() bei MySQL einen Bug enthalten, dass sie immer true zurückliefern. Ich habe mir den "Workaround" geschaffen, dass wenn das Execute des SQL-Statements fehlschlägt, die Datenbankverbindung abzubauen und danach direkt wieder aufzubauen. Ist nicht schön, aber so bekomme ich mit, ob der MySQL-Server nicht mehr erreichbar ist oder die Verbindung wird erfolgreich aufgebaut und das Statement erneut zum Server geschickt. Ich gehe dabei davon aus, dass meine SQL-Statements syntaktisch korrekt sind, da der Anwender keinen Einfluss auf den Aufbau der Statements hat. Falls es beim Reconnect, der unsichtbar für den Anwender läuft, einen Verbindungsfehler gibt, gebe ich eine entsprechende Meldung aus.
Wer eine bessere Lösung hat, ich bin auch daran interessiert.
Viele Grüße,
Markus