. */ interface DBMethod { public function toQuery(IDB $db); } class DBMethodConcatField implements DBMethod { private $field1; private $field2; public function __construct($field1, $field2) { $this->field1 = $field1; $this->field2 = $field2; } public function toQuery(IDB $db) { return "CONCAT(" . $db->escapeField($this->field1) . ", " . $db->escapeField($this->field2) . ")"; } } class DBMethodConcatValue implements DBMethod { private $field; private $appendValue; public function __construct($field, $appendValue) { $this->field = $field; $this->appendValue = $appendValue; } public function toQuery(IDB $db) { return "CONCAT(" . $db->escapeField($this->field) . ", " . $db->escapeValue($this->appendValue) . ")"; } } class DBMethodGroupConcat implements DBMethod { private $field; private $order; private $orderAsc; private $separator; public function __construct($field, $order = null, $orderAsc = true, $separator = null) { $this->field = $field; $this->order = $order; $this->orderAsc = $orderAsc; $this->separator = $separator; } public function toQuery(IDB $db) { return "GROUP_CONCAT(" . $db->escapeField($this->field) . ($this->order == null ? "" : " ORDER BY " . $db->escapeField($this->order) . " " . ($this->orderAsc ? "ASC" : "DESC")) . ($this->separator == null ? "" : " SEPARATOR " . $db->escapeValue($this->separator)) . ")"; } } class DBMethodCount implements DBMethod { private $field; public function __construct($field) { $this->field = $field; } public function toQuery(IDB $db) { return "COUNT(" . $db->escapeField($this->field) . ")"; } } class DBMethodLeft implements DBMethod { private $field; private $length; public function __construct($field, $length) { $this->field = $field; $this->length = $length; } public function toQuery(IDB $db) { return "LEFT(" . $db->escapeField($this->field) . ", " . $db->escapeValue($this->length) . ")"; } } class DBMethodSubstring implements DBMethod { private $field; private $start; private $length; public function __construct($field, $start, $length) { $this->field = $field; $this->start = $start; $this->length = $length; } public function toQuery(IDB $db) { return "SUBSTRING(" . $db->escapeField($this->field) . ", " . $db->escapeValue($this->start) . ", " . $db->escapeValue($this->length) . ")"; } } class DBMethodLength implements DBMethod { private $field; public function __construct($field) { $this->field = $field; } public function toQuery(IDB $db) { return "LENGTH(" . $db->escapeField($this->field) . ")"; } } class DBMethodLower implements DBMethod { private $field; public function __construct($field) { $this->field = $field; } public function toQuery(IDB $db) { return "LOWER(" . $db->escapeField($this->field) . ")"; } } class DBMethodMax implements DBMethod { private $field; public function __construct($field) { $this->field = $field; } public function toQuery(IDB $db) { return "MAX(" . $db->escapeField($this->field) . ")"; } } class DBMethodMin implements DBMethod { private $field; public function __construct($field) { $this->field = $field; } public function toQuery(IDB $db) { return "MIN(" . $db->escapeField($this->field) . ")"; } } class DBMethodPassword implements DBMethod { private $value; public function __construct($value) { $this->value = $value; } public function toQuery(IDB $db) { return "PASSWORD(" . $db->escapeValue($this->value) . ")"; } } class DBMethodSum implements DBMethod { private $field; public function __construct($field) { $this->field = $field; } public function toQuery(IDB $db) { return "SUM(" . $db->escapeField($this->field) . ")"; } } ?>