示例#1
0
 /**
  * Строит запрос для группы выражений
  * @param IExpressionGroup $exprGroup
  * @return string
  */
 private function buildExpressionGroup(IExpressionGroup $exprGroup)
 {
     $result = [];
     foreach ($exprGroup->getExpressions() as $expression) {
         list($leftCond, $operator, $rightCond) = $expression;
         $leftCond = $this->protectExpressionValue($leftCond);
         $rightCond = $this->protectExpressionValue($rightCond);
         $result[] = $leftCond . ' ' . $operator . ' ' . $rightCond;
     }
     foreach ($exprGroup->getGroups() as $subGroup) {
         $result[] = '(' . $this->buildExpressionGroup($subGroup) . ')';
     }
     if (!count($result)) {
         return '1';
         // WHERE 1, if no expressions
     }
     return implode(' ' . $exprGroup->getMode() . ' ', $result);
 }