+ System::callstack(8)."\n".self::replaceParameters($sql, $args));
+
+ // On a lost connection we try to reconnect - but only once.
+ if ($errorno == 2006) {
+ if (self::$in_retrial || !self::reconnect()) {
+ // It doesn't make sense to continue when the database connection was lost
+ if (self::$in_retrial) {
+ logger('Giving up retrial because of database error '.$errorno.': '.$error);
+ } else {
+ logger("Couldn't reconnect after database error ".$errorno.': '.$error);
+ }
+ exit(1);
+ } else {
+ // We try it again
+ logger('Reconnected after database error '.$errorno.': '.$error);
+ self::$in_retrial = true;
+ $ret = self::p($sql, $args);
+ self::$in_retrial = false;
+ return $ret;
+ }
+ }