From e3442f662bb7ee8b42b77db2dc7d7eba63326b05 Mon Sep 17 00:00:00 2001 From: Mohan Raj Date: Sat, 27 Nov 2021 05:04:33 +0530 Subject: [PATCH] Validate before binding whereIn array --- src/QueryBuilder/QueryBuilderHandler.php | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/QueryBuilder/QueryBuilderHandler.php b/src/QueryBuilder/QueryBuilderHandler.php index 9d5ca0d..72cb26c 100644 --- a/src/QueryBuilder/QueryBuilderHandler.php +++ b/src/QueryBuilder/QueryBuilderHandler.php @@ -100,7 +100,8 @@ public function setFetchMode($mode) */ public function asObject($className, $constructorArgs = array()) { - var_dump('need to implement this'); die(); + var_dump('need to implement this'); + die(); return $this->setFetchMode(\PDO::FETCH_CLASS, $className, $constructorArgs); } @@ -282,7 +283,7 @@ public function getQuery($type = 'select', $dataToBePassed = array()) } $queryArr = $this->adapterInstance->$type($this->statements, $dataToBePassed); - + return $this->container->build( '\\WpFluent\\QueryBuilder\\QueryObject', array($queryArr['sql'], $queryArr['bindings']) @@ -689,7 +690,9 @@ public function orWhereNot($key, $operator = null, $value = null) */ public function whereIn($key, $values) { - return $this->whereHandler($key, 'IN', $values, 'AND'); + return $this->when($values, function ($query, $values) use ($key) { + return $query->whereHandler($key, 'IN', $values, 'AND'); + }); } /** @@ -700,7 +703,9 @@ public function whereIn($key, $values) */ public function whereNotIn($key, $values) { - return $this->whereHandler($key, 'NOT IN', $values, 'AND'); + return $this->when($values, function ($query, $values) use ($key) { + return $query->whereHandler($key, 'NOT IN', $values, 'AND'); + }); } /** @@ -711,7 +716,9 @@ public function whereNotIn($key, $values) */ public function orWhereIn($key, $values) { - return $this->whereHandler($key, 'IN', $values, 'OR'); + return $this->when($values, function ($query, $values) use ($key) { + return $query->whereHandler($key, 'IN', $values, 'OR'); + }); } /** @@ -722,7 +729,9 @@ public function orWhereIn($key, $values) */ public function orWhereNotIn($key, $values) { - return $this->whereHandler($key, 'NOT IN', $values, 'OR'); + return $this->when($values, function ($query, $values) use ($key) { + return $query->whereHandler($key, 'NOT IN', $values, 'OR'); + }); } /**