- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
class QueryWhereGroup {
public $groupOp = 'AND';
public $args = array();
public $conditions = array();
function cond($field, $value = NULL, $op = '=') {
if ($value === NULL) {
$this->conditions[] = $field;
if (is_object($field) && isset($field->args)) {
$this->args = array_merge($this->args, $field->args);
}
}
else {
if (is_numeric($value)) {
$this->conditions[] = "$field $op %d";
$this->args[] = $value;
}
elseif (is_array($value)) {
$placeholders = db_placeholders($value, is_numeric(current($value)) ? 'int' : 'text');
$this->conditions[] = "$field IN ($placeholders)";
$this->args = array_merge($this->args, $value);
}
else {
$this->conditions[] = "$field $op '%s'";
$this->args[] = $value;
}
}
return $this;
}
function compile($wrap = FALSE) {
$result = join(" $this->groupOp ", $this->conditions);
if ($wrap && !empty($result)) {
$result = "(\n$result\n)";
}
return $result;
}
function __toString() {
return $this->compile();
}
}
см. след говнокод
Комментарии (0) RSS
Добавить комментарий