/** * Returns the query as an SQL string * * @return string */ public function generate(Atomik_Db_Query $query) { $this->_query = $query; $this->_info = $query->getInfo(); $sql = ''; switch($this->_info['statement']) { case 'SELECT': $sql = $this->_buildSelectStatement(); break; case 'INSERT': $sql = $this->_buildInsertStatement(); break; case 'UPDATE': $sql = $this->_buildUpdateStatement(); break; case 'DELETE': $sql = $this->_buildDeleteStatement(); break; } return trim($sql); }
/** * Query the adapter * * @param Atomik_Db_Query $query * @return Atomik_Model_Modelset */ public function query(Atomik_Db_Query $query) { if ($query->getInfo('statement') != 'SELECT') { require_once 'Atomik/Model/Manager/Exception.php'; throw new Atomik_Model_Manager_Exception('Only SELECT queries can be used with Atomik_Model_Manager'); } $builder = self::getBuilderFromQuery($query); $this->_notify($builder, 'BeforeQuery', array($query)); if (($result = $this->_dbInstance->query($query)) === false) { return new Atomik_Model_Modelset($builder, array()); } $result->setFetchMode(PDO::FETCH_ASSOC); $modelSet = new Atomik_Model_Modelset($builder, $result); $this->_notify($builder, 'AfterQuery', array($modelSet)); return $modelSet; }