From a7202ac3e180021e32b2e00a19ac05c730d2804b Mon Sep 17 00:00:00 2001 From: Denis Glushkov Date: Fri, 18 Dec 2020 18:40:34 +0500 Subject: [PATCH] Fix restriction: "keys inside the array list must match" at \ClickHouseDB\Client::prepareInsertAssocBulk --- src/BaseModel.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/BaseModel.php b/src/BaseModel.php index 64704bd..f13aee6 100644 --- a/src/BaseModel.php +++ b/src/BaseModel.php @@ -142,6 +142,13 @@ public static function prepareAndInsert($rows, $columns = []) */ public static function insertAssoc($rows) { + $rows = array_values($rows); + if (isset($rows[0]) && isset($rows[1])) { + $keys = array_keys($rows[0]); + foreach ($rows as &$row) { + $row = array_replace(array_flip($keys), $row); + } + } return static::getClient()->insertAssocBulk((new static)->getTable(), $rows); } @@ -152,14 +159,8 @@ public static function insertAssoc($rows) */ public static function prepareAndInsertAssoc($rows) { - $rows = array_values(array_map('static::prepareAssocFromRequest', $rows)); - if (isset($rows[0]) && isset($rows[1])) { - $keys = array_keys($rows[0]); - foreach ($rows as &$row) { - $row = array_replace(array_flip($keys), $row); - } - } - return static::getClient()->insertAssocBulk((new static)->getTable(), $rows); + $rows = array_map('static::prepareAssocFromRequest', $rows); + return static::insertAssoc($rows); } /**