. */ interface DBWhere { public function toQuery(IDB $db); } class DBWhereEquals implements DBWhere { private $field; private $value; public function __construct($field, $value) { $this->field = $field; $this->value = $value; } public function toQuery(IDB $db) { return $db->escapeField($this->field) . " = " . $db->escapeValue($this->value); } } class DBWhereNotEquals implements DBWhere { private $field; private $value; public function __construct($field, $value) { $this->field = $field; $this->value = $value; } public function toQuery(IDB $db) { return $db->escapeField($this->field) . " != " . $db->escapeValue($this->value); } } class DBWhereGreaterEquals implements DBWhere { private $field; private $value; public function __construct($field, $value) { $this->field = $field; $this->value = $value; } public function toQuery(IDB $db) { return $db->escapeField($this->field) . " >= " . $db->escapeValue($this->value); } } class DBWhereSmallerEquals implements DBWhere { private $field; private $value; public function __construct($field, $value) { $this->field = $field; $this->value = $value; } public function toQuery(IDB $db) { return $db->escapeField($this->field) . " <= " . $db->escapeValue($this->value); } } class DBWhereGreater implements DBWhere { private $field; private $value; public function __construct($field, $value) { $this->field = $field; $this->value = $value; } public function toQuery(IDB $db) { return $db->escapeField($this->field) . " > " . $db->escapeValue($this->value); } } class DBWhereSmaller implements DBWhere { private $field; private $value; public function __construct($field, $value) { $this->field = $field; $this->value = $value; } public function toQuery(IDB $db) { return $db->escapeField($this->field) . " < " . $db->escapeValue($this->value); } } class DBWhereIn implements DBWhere { private $field; private $values; public function __construct($field, array $values) { $this->field = $field; $this->values = $values; } public function toQuery(IDB $db) { $escapedValues = array(); foreach($this->values as $value) { $escapedValues[] = $db->escapeValue($value); } return $db->escapeField($this->field) . " IN (" . implode(", ", $escapedValues) . ")"; } } class DBWhereIsNull implements DBWhere { private $field; public function __construct($field) { $this->field = $field; } public function toQuery(IDB $db) { return $db->escapeField($this->field) . " IS NULL"; } } class DBWhereIsNotNull implements DBWhere { private $field; public function __construct($field) { $this->field = $field; } public function toQuery(IDB $db) { return $db->escapeField($this->field) . " IS NOT NULL"; } } class DBWhereOr implements DBWhere { private $whereParts; public function __construct(DBWhere ...$whereParts) { $this->whereParts = $whereParts; } public function toQuery(IDB $db) { $escapedParts = array(); foreach($this->whereParts as $wherePart) { $escapedParts[] = $wherePart->toQuery($db); } return "(" . implode(" OR ", $escapedParts) . ")"; } } ?>