| @@ 737-764 (lines=28) @@ | ||
| 734 | * |
|
| 735 | * @return bool |
|
| 736 | */ |
|
| 737 | protected function queryErrorHandling($errorMsg, $sql, $sqlParams = false) |
|
| 738 | { |
|
| 739 | if ($errorMsg === 'DB server has gone away' || $errorMsg === 'MySQL server has gone away') { |
|
| 740 | static $reconnectCounter; |
|
| 741 | ||
| 742 | // exit if we have more then 3 "DB server has gone away"-errors |
|
| 743 | if ($reconnectCounter > 3) { |
|
| 744 | $this->_debug->mailToAdmin('SQL-Fatal-Error', $errorMsg . ":\n<br />" . $sql, 5); |
|
| 745 | throw new \Exception($errorMsg); |
|
| 746 | } else { |
|
| 747 | $this->_debug->mailToAdmin('SQL-Error', $errorMsg . ":\n<br />" . $sql); |
|
| 748 | ||
| 749 | // reconnect |
|
| 750 | $reconnectCounter++; |
|
| 751 | $this->reconnect(true); |
|
| 752 | ||
| 753 | // re-run the current query |
|
| 754 | return $this->query($sql, $sqlParams); |
|
| 755 | } |
|
| 756 | } else { |
|
| 757 | $this->_debug->mailToAdmin('SQL-Warning', $errorMsg . ":\n<br />" . $sql); |
|
| 758 | ||
| 759 | // this query returned an error, we must display it (only for dev) !!! |
|
| 760 | $this->_debug->displayError($errorMsg . ' | ' . $sql); |
|
| 761 | } |
|
| 762 | ||
| 763 | return false; |
|
| 764 | } |
|
| 765 | ||
| 766 | /** |
|
| 767 | * Reconnect to the MySQL-Server. |
|
| @@ 400-427 (lines=28) @@ | ||
| 397 | * |
|
| 398 | * @return bool |
|
| 399 | */ |
|
| 400 | private function queryErrorHandling($errorMsg, $sql) |
|
| 401 | { |
|
| 402 | if ($errorMsg === 'DB server has gone away' || $errorMsg === 'MySQL server has gone away') { |
|
| 403 | static $reconnectCounter; |
|
| 404 | ||
| 405 | // exit if we have more then 3 "DB server has gone away"-errors |
|
| 406 | if ($reconnectCounter > 3) { |
|
| 407 | $this->_debug->mailToAdmin('SQL-Fatal-Error', $errorMsg . ":\n<br />" . $sql, 5); |
|
| 408 | throw new \Exception($errorMsg); |
|
| 409 | } else { |
|
| 410 | $this->_debug->mailToAdmin('SQL-Error', $errorMsg . ":\n<br />" . $sql); |
|
| 411 | ||
| 412 | // reconnect |
|
| 413 | $reconnectCounter++; |
|
| 414 | $this->_db->reconnect(true); |
|
| 415 | ||
| 416 | // re-run the current query |
|
| 417 | return $this->execute(); |
|
| 418 | } |
|
| 419 | } else { |
|
| 420 | $this->_debug->mailToAdmin('SQL-Warning', $errorMsg . ":\n<br />" . $sql); |
|
| 421 | ||
| 422 | // this query returned an error, we must display it (only for dev) !!! |
|
| 423 | $this->_debug->displayError($errorMsg . ' | ' . $sql); |
|
| 424 | } |
|
| 425 | ||
| 426 | return false; |
|
| 427 | } |
|
| 428 | ||
| 429 | } |
|
| 430 | ||