/** * Applica una condizione alla query su tabella estraendo solo la riga * corrispondente alla primary key indicata * @param Mixed $pkeys * @return Boolean|Rowset */ public function getByPrimaryKey($pkeys = array()) { if (is_array($pkeys)) { reset($this->_pkeys); $condition = array(); foreach ($pkeys as $value) { $column = current($this->_pkeys); next($this->_pkeys); $condition[] = array('column' => $column, 'value' => $value); } reset($this->_pkeys); $where = Database::getClauseClassInstanceFromConnectionName('where', $this->_connection_name); $where->setData($condition); } else { reset($this->_pkeys); $value = $pkeys; $column = current($this->_pkeys); $condition = array(array('column' => $column, 'value' => $value)); $where = Database::getClauseClassInstanceFromConnectionName('where', $this->_connection_name); $where->setData($condition); } $query = Database::getQueryClass(array('select', 'from', 'where' => $where), $this->_connection_name); $query->sendData('from', array($this->getTable())); return Database::query($query); }
/** * Aggiunge una clause alla query. Se $clause è una clause viene aggiunta così com'è, * se è una stringa viene richiamata la Clause più vicina al driver indicato per la query * e passa $params al costruttore * @param String|Clause $clause * @param Array $params * @return self */ public function addClause($clause, $params = array()) { if ($clause instanceof Clause) { $name = $clause->getName(); $this->_clauseList[$name] = $clause; } else { $instance = Database::getClauseClassInstanceFromConnectionName($clause, $this->getConnectionName()); $instance->initData($params); $this->_clauseList[$clause] = $instance; } return $this; }