Skip to content

Commit 326a56f

Browse files
authored
Merge pull request #232 from nextras/named-timezones-doc
Named timezones doc
2 parents 94b3a6e + 647db40 commit 326a56f

File tree

4 files changed

+35
-1
lines changed

4 files changed

+35
-1
lines changed

src/Bridges/NetteTracy/BluescreenQueryPanel.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ public static function renderBluescreenPanel(?\Throwable $exception): ?array
2020

2121
return [
2222
'tab' => 'SQL',
23-
'panel' => '<pre class="sql">' . SqlHighlighter::highlight($query) . "</pre>",
23+
'panel' => '<pre class="sql">' . SqlHighlighter::highlight($query) . '</pre>' .
24+
"<p>Error code: {$exception->getErrorCode()}<br>SQL STATE: {$exception->getErrorSqlState()}</p>",
2425
];
2526
}
2627
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace Nextras\Dbal\Drivers\Exception;
4+
5+
6+
use Exception;
7+
8+
9+
class UnknownMysqlTimezone extends QueryException
10+
{
11+
public function __construct(
12+
string $message,
13+
int $errorCode = 0,
14+
string $errorSqlState = '',
15+
Exception $previousException = null,
16+
?string $sqlQuery = null,
17+
)
18+
{
19+
parent::__construct(
20+
$message . "\nSee how to solve the issue: https://nextras.org/dbal/docs/main/timezones-mysql-support",
21+
$errorCode,
22+
$errorSqlState,
23+
$previousException,
24+
$sqlQuery,
25+
);
26+
}
27+
}

src/Drivers/Mysqli/MysqliDriver.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Nextras\Dbal\Drivers\Exception\NotNullConstraintViolationException;
1313
use Nextras\Dbal\Drivers\Exception\QueryException;
1414
use Nextras\Dbal\Drivers\Exception\UniqueConstraintViolationException;
15+
use Nextras\Dbal\Drivers\Exception\UnknownMysqlTimezone;
1516
use Nextras\Dbal\Drivers\IDriver;
1617
use Nextras\Dbal\Exception\InvalidStateException;
1718
use Nextras\Dbal\Exception\NotSupportedException;
@@ -368,6 +369,8 @@ protected function createException(string $error, int $errorNo, string $sqlState
368369
return new ConnectionException($error, $errorNo, $sqlState);
369370
} elseif (in_array($errorNo, [1048, 1121, 1138, 1171, 1252, 1263, 1566], true)) {
370371
return new NotNullConstraintViolationException($error, $errorNo, $sqlState, null, $query);
372+
} elseif ($errorNo === 1298) {
373+
return new UnknownMysqlTimezone($error, $errorNo, $sqlState, null, $query);
371374
} elseif ($query !== null) {
372375
return new QueryException($error, $errorNo, $sqlState, null, $query);
373376
} else {

src/Drivers/PdoMysql/PdoMysqlDriver.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Nextras\Dbal\Drivers\Exception\NotNullConstraintViolationException;
1212
use Nextras\Dbal\Drivers\Exception\QueryException;
1313
use Nextras\Dbal\Drivers\Exception\UniqueConstraintViolationException;
14+
use Nextras\Dbal\Drivers\Exception\UnknownMysqlTimezone;
1415
use Nextras\Dbal\Drivers\IDriver;
1516
use Nextras\Dbal\Drivers\Pdo\PdoDriver;
1617
use Nextras\Dbal\Exception\InvalidArgumentException;
@@ -153,6 +154,8 @@ protected function createException(string $error, int $errorNo, string $sqlState
153154
return new ConnectionException($error, $errorNo, $sqlState);
154155
} elseif (in_array($errorNo, [1048, 1121, 1138, 1171, 1252, 1263, 1566], true)) {
155156
return new NotNullConstraintViolationException($error, $errorNo, $sqlState, null, $query);
157+
} elseif ($errorNo === 1298) {
158+
return new UnknownMysqlTimezone($error, $errorNo, $sqlState, null, $query);
156159
} elseif ($query !== null) {
157160
return new QueryException($error, $errorNo, $sqlState, null, $query);
158161
} else {

0 commit comments

Comments
 (0)