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
 /**
  * Esegue uno statement
  * @param String $name
  * @return Rowset
  */
 public function run($name)
 {
     if ($this->getStatementByName($name)) {
         return Database::query($this->getStatementByName($name));
     }
 }
Example #3
0
 /**
  * Esegue una procedura ed inserisce eventuali parametri di ritorno in $return_params
  * @param type $query
  * @param type $bind_params
  * @param type $return_params
  * @return boolean
  */
 public function callProcedure($query, $bind_params = null, &$return_params = null)
 {
     $pdo = $this->getDbInstance();
     $string = $query;
     $params = array();
     if ($query instanceof Query) {
         $string = $query->toString();
         $params = $query->getBindParams();
         $stmt = $pdo->prepare($string);
     } else {
         if ($query instanceof \PDOStatement) {
             $stmt = $query;
         } else {
             $stmt = $pdo->prepare($query);
         }
     }
     if (!is_null($bind_params)) {
         $params = $bind_params;
     }
     try {
         $stmt->execute($params);
         if (is_null($return_params)) {
             return true;
             // procedure eseguita
         }
         // altrimenti se non è null vuol dire che è stato passato e quindi devo ricavarmi i valori
         // in mysql non è possibile usare la costante \PDO::PARAM_INPUT_OUTPUT in quanto genera errore
         // quindi faccio una select sulle variabili indicate in fase di chiamata
         $selectclassname = \smn\pheeca\kernel\Database::getClauseClassNameFromDriverName('select', 'mysql');
         $select_class = new $selectclassname($return_params);
         $stmt = $pdo->prepare($select_class->toString());
         $stmt->execute($return_params);
         $return_params = $stmt->fetchAll(\PDO::FETCH_ASSOC);
         return $return_params;
     } catch (\PDOException $ex) {
         echo 'Adapter in exception : ' . $ex->getMessage();
         return false;
     }
 }
Example #4
0
 /**
  * Esegue la query
  */
 public function exec()
 {
     return Database::query($this, null, $this->getConnectionName());
 }