From 4df9ececbaa65f17cf24a6b4bf749e2b147706d5 Mon Sep 17 00:00:00 2001 From: Dave M Date: Fri, 23 Apr 2021 03:03:01 +0000 Subject: [PATCH] - Fixed a bug occuring when a field was already escaped --- src/Adapter/MsSQL.php | 2 +- src/Adapter/MySQL.php | 2 +- src/Repository.php | 7 +++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Adapter/MsSQL.php b/src/Adapter/MsSQL.php index 5d84ee7..4c01539 100644 --- a/src/Adapter/MsSQL.php +++ b/src/Adapter/MsSQL.php @@ -193,7 +193,7 @@ class MsSQL implements AdapterInterface { case static::IDENTIFIER_DATABASE: case static::IDENTIFIER_TABLE: case static::IDENTIFIER_FIELD: - return "[" . str_replace(["[", "]"], [ "[[", "]]" ], $segment) . "]"; + return "[" . trim(str_replace(["[", "]"], [ "[[", "]]" ], $segment), '[]') . "]"; case static::IDENTIFIER_VALUE: return "'$segment'"; diff --git a/src/Adapter/MySQL.php b/src/Adapter/MySQL.php index 910c162..8b9113f 100644 --- a/src/Adapter/MySQL.php +++ b/src/Adapter/MySQL.php @@ -130,7 +130,7 @@ class MySQL implements AdapterInterface { case static::IDENTIFIER_DATABASE: case static::IDENTIFIER_TABLE: case static::IDENTIFIER_FIELD: - return "`" . str_replace("`", "``", $segment) . "`"; + return "`" . trim(str_replace("`", "``", $segment), '`') . "`"; case static::IDENTIFIER_VALUE: return "\"$segment\""; diff --git a/src/Repository.php b/src/Repository.php index cfa5e1f..627a17f 100644 --- a/src/Repository.php +++ b/src/Repository.php @@ -79,12 +79,12 @@ class Repository return Ulmus::runSelectQuery($this->queryBuilder, $this->adapter)->fetchColumn(0); } - public function deleteOne() + protected function deleteOne() { return $this->limit(1)->deleteSqlQuery()->runQuery(); } - public function deleteAll() + protected function deleteAll() { return $this->deleteSqlQuery()->runQuery(); } @@ -161,7 +161,6 @@ class Repository $entity->entityFillFromDataset($dataset); - return $update ? (bool) $update->rowCount() : false; } } @@ -726,7 +725,7 @@ class Repository public function escapeFieldList(array $fieldList) : array { - foreach($fieldList as & $list) { + foreach($fieldList as &$list) { $list['name'] = $this->escapeField($list['name']); $fieldTag = array_filter($list['tags'] ?? [], fn($item) => $item['object'] instanceof Field)[0]['object'] ?? null;