Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * 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;
 }