public function havingString() { $ret = ''; if (is_array($this->having) && count($this->having)) { foreach ($this->having as $having_data) { if (is_numeric($having_data['value'])) { $value = $having_data['value']; } else { $value = '\'' . $having_data['value'] . '\''; } if ($having_data['table']) { $field_string = $having_data['table'] . '.' . $having_data['field']; } else { $field_string = $having_data['field']; } if ($having_data['function']) { $field_string = $having_data['function'] . '(' . $field_string . ')'; } $cur_str = $field_string . ' ' . Clause::getStringSeparator($having_data['type']) . ' ' . $value; if ($ret) { $ret = '(' . $ret . ') ' . Clause::relateHowToString($having_data['relate_how']) . ' (' . $cur_str . ')'; } else { $ret = $cur_str; } } $ret = ' HAVING(' . $ret . ')'; } else { if ($this->having) { throw new Exception('Incorrect having clause: ' . $this->having); } } return $ret; }