0) { $dsErrors = array(); foreach ($message as $vMsg) { $dsErrors[] = self::parseMessage($vMsg); } $message = implode("\n", $dsErrors); } else { $message = 'XXX' . json_encode($message); } } else { $message = self::parseMessage($message); } return parent::__construct($message, $code, $previous); } public static function parseMessage($message) { $parsedMsg = $message; //echo "\nMSG: ({$message})\n"; //echo "\nMSG substr(0, 7): (" . substr($message, 0, 7) . ") substr(-15): (" . substr($message, -15) . ")\n"; if ("Table '" == substr($message, 0, 7) && "' doesn't exist" == substr($message, -15)) { // #1146 - Table '{DATABASE_NAME}.WARNING: Update all paths' doesn't exist // #1146 - Table '{DATABASE_NAME}.ERROR: Loop detected ID=P_ID' doesn't exist // #1146 - Table '{DATABASE_NAME}.ERROR: Parent item not exists' doesn't exist // #1146 - Table '{DATABASE_NAME}.ERROR: Loop detected in path' doesn't exist $tmpMsg = $message; $tmpMsg = substr($tmpMsg, 7); $tmpMsg = substr($tmpMsg, 0, -15); if (false !== ($pos = strpos($tmpMsg, 'WARNING:'))) { $tmpMsg = substr($tmpMsg, $pos + 9); } if (false !== ($pos = strpos($tmpMsg, 'ERROR:'))) { $tmpMsg = substr($tmpMsg, $pos + 7); } //echo "\ntmpMsg: ({$tmpMsg})\n"; switch ($tmpMsg) { case 'Update all paths': { $parsedMsg = "Zaktualizuj ścieżki projektów!"; break; } case 'Loop detected ID=P_ID': { $parsedMsg = "Nr rekordu nadrzędnego musi różnić się od nr rekordu"; break; } case 'Parent item not exists': { $parsedMsg = "Nie istnieje rekord o numerze podanym jako nr nadrzędny"; break; } case 'Loop detected in path': { $parsedMsg = "Nieprawidłowy nr nadrzędny"; break; } } } return $parsedMsg; } }