From c74789faef4447ca267ad97e221a7a0da8853a74 Mon Sep 17 00:00:00 2001 From: Daniel Seifert Date: Sat, 23 Jan 2021 21:53:18 +0100 Subject: [PATCH] add prepared statement query generator --- src/OxidSQLLogger.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/OxidSQLLogger.php b/src/OxidSQLLogger.php index b4d7bc1..557e760 100644 --- a/src/OxidSQLLogger.php +++ b/src/OxidSQLLogger.php @@ -7,6 +7,7 @@ namespace D3\OxidSqlLogger; +use D3\ModCfg\Application\Model\d3database; use Doctrine\DBAL\Logging\SQLLogger; use Monolog; use NilPortugues\Sql\QueryFormatter\Formatter; @@ -53,6 +54,8 @@ class OxidSQLLogger implements SQLLogger $this->stopQuery(); } + $this->getPreparedStatementQuery($sql, $params); + $this->SQLQuery = (new SQLQuery()) ->setSql($sql) ->setParams($params) ->setTypes($types) @@ -62,6 +65,23 @@ class OxidSQLLogger implements SQLLogger ->setLogStartingFunction($this->logStartingFunction); } + /** + * @param string $sql + * @param array $params + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException + */ + public function getPreparedStatementQuery(&$sql, array $params = null) + { + if (class_exists(d3database::class) + && method_exists(d3database::class, 'getPreparedStatementQuery') + && count($params) + && ($query = d3database::getInstance()->getPreparedStatementQuery($sql, $params)) + && strlen(trim($query)) + ) { + $sql = $query; + } + } + /** * @inheritDoc */