Skip to content

Commit 1b5b434

Browse files
committed
fix: don't break dump on broken query.
1 parent 07a6cb9 commit 1b5b434

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/Helper/QueryBuilderHelper.php

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,20 +97,27 @@ public static function analyzeByBuilder($builder)
9797
*/
9898
public static function analyze($rawSql, $bindings)
9999
{
100+
$queryData = '';
101+
$sqlOptimized = '';
100102
$query = [
101103
'sql' => $rawSql,
102104
'bindings' => $bindings,
103105
];
104-
$queryData = DB::connection()->select('EXPLAIN ' . $rawSql, $bindings);
105106

106-
DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true);
107-
$showWarnings = DB::connection()->getPdo()->query("SHOW WARNINGS");
108-
$sqlOptimized = $showWarnings->fetchColumn(2);
109-
DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
107+
try {
108+
$queryData = DB::connection()->select('EXPLAIN ' . $rawSql, $bindings);
109+
DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true);
110+
$showWarnings = DB::connection()->getPdo()->query("SHOW WARNINGS");
111+
$sqlOptimized = $showWarnings->fetchColumn(2);
112+
DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
113+
} catch (\Exception $e) {
114+
$errorMessage = $e->getMessage();
115+
}
110116

111117
return [
112118
'queryParts' => $queryData,
113119
'query' => $query,
120+
'error' => $errorMessage,
114121
'optimized' => $sqlOptimized,
115122
];
116123
}

0 commit comments

Comments
 (0)