11<?php
22namespace Kir \MySQL \Databases ;
33
4+ use DateTimeZone ;
45use Kir \MySQL \Builder ;
56use Kir \MySQL \Builder \DBExpr ;
67use Kir \MySQL \Builder \QueryStatement ;
78use Kir \MySQL \Builder \Select ;
89use Kir \MySQL \Database ;
910use Kir \MySQL \Databases \MySQL \MySQLExceptionInterpreter ;
10- use Kir \MySQL \Databases \MySQL \MySQLExpressionQuoter ;
1111use Kir \MySQL \Databases \MySQL \MySQLFieldQuoter ;
1212use Kir \MySQL \Databases \MySQL \MySQLRunnableSelect ;
1313use Kir \MySQL \Databases \MySQL \MySQLUUIDGenerator ;
14- use Kir \MySQL \Databases \MySQL \MySQLValueQuoter ;
14+ use Kir \MySQL \Databases \MySQL \MySQLQuoter ;
1515use Kir \MySQL \QueryLogger \QueryLoggers ;
1616use Kir \MySQL \Tools \AliasRegistry ;
1717use Kir \MySQL \Tools \VirtualTables ;
@@ -42,6 +42,8 @@ class MySQL implements Database {
4242 private $ exceptionInterpreter ;
4343 /** @var array<string, mixed> */
4444 private $ options ;
45+ /** @var MySQLQuoter */
46+ private $ quoter ;
4547
4648 /**
4749 * @param PDO $pdo
@@ -62,6 +64,11 @@ public function __construct(PDO $pdo, array $options = []) {
6264 'delete-options ' => [],
6365 ];
6466 $ this ->options = array_merge ($ defaultOptions , $ options );
67+ $ this ->options ['timezone ' ] = $ this ->options ['timezone ' ] ?? date_default_timezone_get ();
68+ if (!($ this ->options ['timezone ' ] instanceof DateTimeZone)) {
69+ $ this ->options ['timezone ' ] = new DateTimeZone ((string ) $ this ->options ['timezone ' ]);
70+ }
71+ $ this ->quoter = new MySQLQuoter ($ pdo , $ this ->options ['timezone ' ]);
6572 }
6673
6774 /**
@@ -172,15 +179,15 @@ public function getTableFields(string $table): array {
172179 * @return string
173180 */
174181 public function quoteExpression (string $ expression , array $ arguments = []): string {
175- return MySQLExpressionQuoter:: quoteExpression ( $ this ->pdo , $ expression , $ arguments );
182+ return $ this ->quoter -> quoteExpression ( $ expression , $ arguments );
176183 }
177184
178185 /**
179186 * @param null|scalar|array<int, string>|DBExpr|Select $value
180187 * @return string
181188 */
182189 public function quote ($ value ): string {
183- return MySQLValueQuoter:: quote ( $ this ->pdo , $ value );
190+ return $ this ->quoter -> quote ( $ value );
184191 }
185192
186193 /**
0 commit comments