From c752ab61595000c37811a0c1cceeb0f932424d73 Mon Sep 17 00:00:00 2001 From: noelma Date: Sat, 10 Dec 2022 17:12:49 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20v=C3=A9rifie=20si=20le=20nombre=20de=20c?= =?UTF-8?q?olonne=20correspond=20aux=20valeurs=20ins=C3=A9r=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Request.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/Request.php b/src/Request.php index 010d32b..66fef48 100644 --- a/src/Request.php +++ b/src/Request.php @@ -449,7 +449,15 @@ protected function executeInsert(): void foreach ($this->values as $values) { /* Pour chaque ligne je vérifie si le nombre de colonne correspond au nombre valeur insérée. */ - if ($count !== count($values)) { + try { + /* Je prépare l'association clé=>valeur pour chaque ligne à insérer. */ + $row = array_combine($this->columnNames, $values); + + /* PHP < 8 la méthode renvoie false */ + if ($row === false) { + throw new \Exception(); + } + } catch (\Throwable $e) { throw new ColumnsNotFoundException( sprintf( 'The number of fields in the selections are different: %s != %s', @@ -459,13 +467,9 @@ protected function executeInsert(): void ); } - /* Je prépare l'association clé=>valeur pour chaque ligne à insérer. */ - $row = array_combine($this->columnNames, $values); - $data = []; foreach ($fields as $fieldName => $field) { /* Si mon champs existe dans le schema. */ - /* @phpstan-ignore-next-line array_combine(): array|false */ if (isset($row[ $fieldName ])) { $data[ $fieldName ] = $field->filterValue($row[ $fieldName ]); /* Si le champ est de type incrémental et que sa valeur est supérieure à celui enregistrer dans le schéma. */