From 2cf87d86d20e1745321238f25134b75ed9e371af Mon Sep 17 00:00:00 2001 From: babaev-an Date: Mon, 18 Aug 2025 22:55:30 +0300 Subject: [PATCH] 20250818 --- sources/traits/Database/DatabaseInsert.php | 21 ++++++++++++--------- sources/traits/Database/DatabaseSpecial.php | 9 +++++++-- tests/123.php | 1 + 3 files changed, 20 insertions(+), 11 deletions(-) create mode 100644 tests/123.php diff --git a/sources/traits/Database/DatabaseInsert.php b/sources/traits/Database/DatabaseInsert.php index 6900b5f..5d2cf02 100644 --- a/sources/traits/Database/DatabaseInsert.php +++ b/sources/traits/Database/DatabaseInsert.php @@ -70,7 +70,7 @@ * * @return false|array Возвращает массив id созданных записей и false, если ошибка. */ - public function InsertMany (string $table, IDBItem ...$sources): false|array + public function InsertMany (string $table, IDBItem ...$sources): false | array { // Инициализирую транзакцию $this->InitTransaction(); @@ -117,25 +117,28 @@ $keys = array_keys($params); // Создаю результирующий массив имён ключей параметров - $keysReal = []; + $keys_params = []; + + // Создаю результирующий массив значений параметров + $keys_values = []; // Для каждого ключа параметра foreach ($keys as $key) { // - получаю его имя - $keyResult = $key[0] == ":" ? substr($key, 1) : $key; - - // - заключаю в кавычки - $keyResult = "$this->DBSignOpen$keyResult$this->DBSignClose"; + $keyReal = $key[0] == ":" ? substr($key, 1) : $key; // - добавляю в результирующий массив ключей - $keysReal[] = $keyResult; + $keys_params[] = "$this->DBSignOpen$keyReal$this->DBSignClose"; + + // - добавляю в результирующий массив значений + $keys_values[] = ":$keyReal"; } // Ключи sql запроса - $sql_keys = implode(', ', $keysReal); + $sql_keys = implode(', ', $keys_params); // Значения sql запроса - $sql_values = implode(', ', $keys); + $sql_values = implode(', ', $keys_values); // Создаю запрос $sql = "INSERT INTO $this->DBSignOpen$table$this->DBSignClose ($sql_keys) VALUES ($sql_values);"; diff --git a/sources/traits/Database/DatabaseSpecial.php b/sources/traits/Database/DatabaseSpecial.php index 6b8feb3..e4fcc93 100644 --- a/sources/traits/Database/DatabaseSpecial.php +++ b/sources/traits/Database/DatabaseSpecial.php @@ -244,8 +244,13 @@ // - создаю объект свойства $item = new DBItemProperty( - $key, $value, $columnHeader, $isIgnore, $converterToDB, - $converterFromDB, $compareFunc + name: $key, + value: $source->$key, + column: $columnHeader, + isIgnored: $isIgnore, + ConvertToDB: $converterToDB, + ConvertFromDB: $converterFromDB, + Compare: $compareFunc ); // - добавляю в массив diff --git a/tests/123.php b/tests/123.php new file mode 100644 index 0000000..a814366 --- /dev/null +++ b/tests/123.php @@ -0,0 +1 @@ +