From d177d233ddef31b0314c5a03609390dca0737fa0 Mon Sep 17 00:00:00 2001 From: Mauro Cassani Date: Tue, 6 Feb 2018 16:25:26 +0100 Subject: [PATCH] README --- README.md | 9 +++++++++ src/Importer.php | 12 ++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3eabb55..a543f7d 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,15 @@ You can decide how to build insert query: * 'multiple' (default) - insert data in a unique multiple insert query * 'single' - insert data in a loop of insert queries +### Maximum limit or records in multiple insert queries + +Please note that there is a limit to the maximum number of records that can be inserted in a single query. In case this limit is exceeded, a loop of multiple insertion queries will be executed. + +This limit is: + +* 4000 records for mysql driver +* 200 records for sqlite driver + ## Built With * [DBAL](http://www.doctrine-project.org/projects/dbal.html) - Database Abstraction Layer diff --git a/src/Importer.php b/src/Importer.php index fb727e9..d29be54 100644 --- a/src/Importer.php +++ b/src/Importer.php @@ -159,7 +159,6 @@ public function getQueries() { $queryBuilder = $this->getQueryBuilder(); - /** @var $class QueryBuilderInterface */ return (new $queryBuilder( $this->table, $this->mapping, @@ -194,6 +193,7 @@ public function execute() return $this->executeMultipleInsertQuery(); } } + /** * @return bool */ @@ -214,6 +214,7 @@ private function executeSingleInsertQueries() return true; } + /** * @return bool */ @@ -229,24 +230,23 @@ private function executeMultipleInsertQuery() foreach ($queries as $query){ $stmt = $this->dbal->prepare($query); $c = 1; - $d = array_slice($this->data->toArray(), ($start*$limit), $limit); + $dataSliced = array_slice($this->data->toArray(), ($start*$limit), $limit); - foreach ($d as $item) { + foreach ($dataSliced as $item) { $this->bindValuesToItem($item, $stmt, $c); $c++; } - $start++; - if(false === $stmt->execute()){ return false; } + + $start++; } return true; } - /** * @param $item * @param $index