/** * @param Query $query * @return array */ private function getPreparedErrorMessage(Query $query) { $error = $this->adapter->getLastError(); if ($error == false) { return false; } $trace = debug_backtrace(); $entryPoint = []; $entryPoint['file'] = ''; $entryPoint['line'] = ''; foreach ($trace as $item) { if (empty($item['file'])) { continue; } if (preg_match('~^' . __DIR__ . '~', $item['file'])) { continue; } $entryPoint = $item; break; } return ['message' => sprintf('%s at %s line %s', $error->getMessage(), $entryPoint['file'], $entryPoint['line']), 'info' => ['code' => $error->getCode(), 'message' => $error->getMessage(), 'query' => $this->transformQuery($query, true)->getQueryAsText(), 'context' => sprintf('%s line %s', $entryPoint['file'], $entryPoint['line'])]]; }