Beispiel #1
0
 /**
  * 一次取出一个对象
  *
  * @param mixed $query 查询对象
  * @param array $filter 行过滤器函数,将查询的每一行作为第一个参数传入指定的过滤器中
  * @return array
  */
 public function fetchObject($query, array $filter = NULL)
 {
     $resource = $this->query($query, self::READ);
     /** 取出过滤器 */
     if ($filter) {
         list($object, $method) = $filter;
     }
     return ($rows = $this->_adapter->fetchObject($resource)) ? $filter ? $object->{$method}($rows) : $rows : new stdClass();
 }
Beispiel #2
0
 /**
  * 构造最终查询语句
  *
  * @return string
  */
 public function __toString()
 {
     switch ($this->_sqlPreBuild['action']) {
         case Typecho_Db::SELECT:
             return $this->_adapter->parseSelect($this->_sqlPreBuild);
         case Typecho_Db::INSERT:
             return 'INSERT INTO ' . $this->_sqlPreBuild['table'] . '(' . implode(' , ', array_keys($this->_sqlPreBuild['rows'])) . ')' . ' VALUES ' . '(' . implode(' , ', array_values($this->_sqlPreBuild['rows'])) . ')' . $this->_sqlPreBuild['limit'];
         case Typecho_Db::DELETE:
             return 'DELETE FROM ' . $this->_sqlPreBuild['table'] . $this->_sqlPreBuild['where'];
         case Typecho_Db::UPDATE:
             $columns = array();
             if (isset($this->_sqlPreBuild['rows'])) {
                 foreach ($this->_sqlPreBuild['rows'] as $key => $val) {
                     $columns[] = "{$key} = {$val}";
                 }
             }
             return 'UPDATE ' . $this->_sqlPreBuild['table'] . ' SET ' . implode(' , ', $columns) . $this->_sqlPreBuild['where'];
         default:
             return NULL;
     }
 }