From 3976dcd9b107f53dbecd629105c97205a367b970 Mon Sep 17 00:00:00 2001 From: Nick Clark Date: Sun, 20 Dec 2015 12:47:29 +1100 Subject: [PATCH] Fixed Having Changed having to perform identical to where --- MysqliDb.php | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/MysqliDb.php b/MysqliDb.php index f9186a62..e6973a50 100644 --- a/MysqliDb.php +++ b/MysqliDb.php @@ -784,13 +784,19 @@ public function orWhere($whereProp, $whereValue = 'DBNULL', $operator = '=') * @return MysqliDb */ - public function having($havingProp, $havingValue = null, $operator = null) + public function having($havingProp, $havingValue = 'DBNULL', $operator = '=', $cond = 'AND') { - if ($operator) { - $havingValue = array($operator => $havingValue); + // forkaround for an old operation api + if (is_array($havingValue) && ($key = key($havingValue)) != "0") { + $operator = $key; + $havingValue = $havingValue[$key]; + } + + if (count($this->_having) == 0) { + $cond = ''; } - $this->_having[] = array("AND", $havingValue, $havingProp); + $this->_having[] = array($cond, $havingProp, $operator, $havingValue); return $this; } @@ -807,12 +813,7 @@ public function having($havingProp, $havingValue = null, $operator = null) */ public function orHaving($havingProp, $havingValue = null, $operator = null) { - if ($operator) { - $havingValue = Array($operator => $havingValue); - } - - $this->_having[] = Array("OR", $havingValue, $havingProp); - return $this; + return $this->having($havingProp, $havingValue, $operator, 'OR'); } /**