public function getQueryString(QueryContext $context) { $field = $this->field->getName($context); $statements = array(); if (!isset($this->clause)) { $statements[] = "{$field} IN ("; if (!empty($this->range)) { $values = array(); foreach ($this->range as $item) { $values[] = '?'; $context->param($item); } $statements[] = implode(',', $values); } else { $statements[] = 'NULL'; } $statements[] = ")"; } else { $whereQuery = new WhereQuery(true); call_user_func($this->clause, $whereQuery); $statements[] = "{$field} IN ("; $item = $whereQuery->getQueryString($context); if (!isset($item)) { throw new QueryException("WhereIn Condition build error."); } $statements[] = $item; $statements[] = ")"; } return !empty($statements) ? '(' . implode(' ', $statements) . ')' : null; }
public function getQueryString(QueryContext $context) { $field = $this->field->getName($context); $statements = array(); if (!$this->notBetween) { $statements[] = "{$field} BETWEEN ? AND ?"; } else { $statements[] = "{$field} < ? OR {$field} > ?"; } $context->param($this->range[0]); $context->param($this->range[1]); return !empty($statements) ? '(' . implode(' ', $statements) . ')' : null; }
public function getQueryString(QueryContext $context) { $statements = array(); $field = $this->field->getName($context); if (!isset($this->clause)) { if ($this->value instanceof Raw) { $statements[] = "{$field} {$this->operator} " . $this->value->getValue(); } else { $statements[] = "{$field} {$this->operator} ?"; $context->param($this->value); } } else { $whereQuery = new WhereQuery($context); call_user_func($this->clause, $whereQuery); $statements[] = $whereQuery->getQueryString($context); } return !empty($statements) ? '(' . implode(' ', $statements) . ')' : null; }