You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php
class SqlCriteria { public $select = '*';
public $distinct = '';
public $where = array();
public $order = array();
public $limit = '';
/** * @return SqlCriteria */ public static function getInstance() { return self; }
/** * @param $conditions array @ex array('field=?' => $value, 'field in ? => new DbExpr('(1,2,3)')) * @return SqlCriteria */ public function where($conditions) { $this->where = $conditions; return $this; }
/** * @param $fields array @ex array('field1', 'field2' => SqlModel::ORDER_DESC) * @return SqlCriteria */ public function order($fields) { if (!is_array($fields)) { $fields = array($fields); } $this->order = $fields; return $this; }
/** * @param $limit int * @param $offset int * @return SqlCriteria */ public function limit($limit, $offset = 0) { if (empty($offset)) { $this->limit = (int) $limit; } $this->limit = (int)$limit . ',' . (int) $offset; return $this; }
/** * @param mixed $select array @ex array('field1', 'field2', 'field3' => 'field') * @return string */ public function select($select) { if (!is_array($select)) { $select = array($select); } $this->select = $select; return $this; }
/** * @param $field string * @return SqlCriteria */ public function distinct($field) { $this->distinct = $field; return $this; } }
|