| @@ 723-750 (lines=28) @@ | ||
| 720 | * |
|
| 721 | * @return bool |
|
| 722 | */ |
|
| 723 | protected function queryErrorHandling($errorMsg, $sql, $sqlParams = false) |
|
| 724 | { |
|
| 725 | if ($errorMsg === 'DB server has gone away' || $errorMsg === 'MySQL server has gone away') { |
|
| 726 | static $reconnectCounter; |
|
| 727 | ||
| 728 | // exit if we have more then 3 "DB server has gone away"-errors |
|
| 729 | if ($reconnectCounter > 3) { |
|
| 730 | $this->_debug->mailToAdmin('SQL-Fatal-Error', $errorMsg . ":\n<br />" . $sql, 5); |
|
| 731 | throw new \Exception($errorMsg); |
|
| 732 | } else { |
|
| 733 | $this->_debug->mailToAdmin('SQL-Error', $errorMsg . ":\n<br />" . $sql); |
|
| 734 | ||
| 735 | // reconnect |
|
| 736 | $reconnectCounter++; |
|
| 737 | $this->reconnect(true); |
|
| 738 | ||
| 739 | // re-run the current query |
|
| 740 | return $this->query($sql, $sqlParams); |
|
| 741 | } |
|
| 742 | } else { |
|
| 743 | $this->_debug->mailToAdmin('SQL-Warning', $errorMsg . ":\n<br />" . $sql); |
|
| 744 | ||
| 745 | // this query returned an error, we must display it (only for dev) !!! |
|
| 746 | $this->_debug->displayError($errorMsg . ' | ' . $sql); |
|
| 747 | } |
|
| 748 | ||
| 749 | return false; |
|
| 750 | } |
|
| 751 | ||
| 752 | /** |
|
| 753 | * 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 | ||