Antwort #2 am: 03. August 2011, 22:26:10
[...]
Fehlercode:
mySQL Error on shop: 2006 - MySQL server has gone away.
[...]
Hallo elainy,
die Fehlermeldung ist eigentlich unmissverständlich. "Has gone away" bedeutet kaum, dass ein Fehler in einem Query zu suchen ist, sondern schlicht und ergreifend, dass der MySQL Server sich (meist kurzfristig) verabschiedet hat. Dies kann durch Verbindungsproblemen zwischen DB Server und Webserver entstehen.
Deine SQL ist zudem lediglich eine "Kurzform". Man könnte es auch anders lösen, damit es wirklich problemlos auf allen Servern funktioniert.
xtc_db_query("insert ignore into " . TABLE_SESSIONS . " values ('" . $key . "', '" . $expiry . "', '" . $value . "')");
return xtc_db_query("update " . TABLE_SESSIONS . " set expiry = '" . $expiry . "', value = '" . $value . "' where sesskey = '" . $key . "'");
Mit dem Ignore wird eine MySQL Fehlermeldung bei bereits existierendem Unique Key ignoriert und danach ein update durchgeführt, der bei einem funktionierendem insert dann nichts verändert.
Grüße,
Tekin