<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* CodeIgniter Model Class 扩展model类,加入缓存方法
*
* @package CodeIgniter
* @subpackage Libraries
* @category Libraries
* @author ExpressionEngine Dev Team
* @link http://codeigniter.com/user_guide/libraries/config.html
*/
class SDF_Model extends CI_Model{
/*public function __construct(){
$this->load->database();
parent::__construct();
}*/
/**
* 公用快接缓存器
* @param $name
* @param string $value
* @param null $options
* @return mixed
*/
public function S($name,$value='',$options=null){
$this->load->driver('cache', array('adapter' => 'redis', 'backup' => 'file'));
$expire = is_numeric($options)?$options:config_item('cache_time');
if($this->cache->redis->is_supported()){
if(''=== $value){ // 获取缓存
return $this->cache->redis->get($name);
}elseif(is_null($value)) { // 删除缓存
return $this->cache->redis->delete($name);
}else { // 缓存数据
return $this->cache->redis->save($name, $value, $expire);
}
}
if(''=== $value){ // 获取缓存
return $this->cache->get($name);
}elseif(is_null($value)) { // 删除缓存
//return $this->cache->delete($name);
}else { // 缓存数据
return $this->cache->save($name, $value, $expire);
}
}
/**
* 公用获取数据列表
* @return mixed
*/
public function _list(){
$query = $this->db->get();
return $query->result_array();
}
/**
* 公用获取表字段列表
* @return mixed
*/
public function _list_fields(){
$fields = $this->db->list_fields($this->_table);
return $fields;
}
/**
* 公用获取字段详细信息
* @return mixed
*/
public function _field_data()
{
return $this->db->field_data($this->_table);
}
/**
* 公用插入函数 成功返回id,失败返回false
* @param $data
* @return bool
*/
public function _insert($data){
if($this->db->insert($this->_table, $data)){
return $this->db->insert_id();
}
return false;
}
/**
* 公用操作表选择 对数据查询或操作前必须先指定操作的表
* @param $table
* @return $this
*/
public function _from($table){
$this->db->from($table.' AS '.$table);
$this->_table = $table;
return $this;
}
/**
* 公用数据删除方法 返回删除数据的数量
* @param $where
* @return mixed
*/
public function _delete($where=array()){
if(!empty($where)){
$this->db->where($where);
}
if($this->db->delete($this->_table)){
return $this->db->affected_rows();
}else{
return false;
}
}
/**
* 公用数据表数据清空方法
* @param $table
* @return mixed
*/
public function _empty_table($table){
$this->db->empty_table($table);
return $this->db->affected_rows();
}
/**
* 公用获取一条数据
* @param $where
* @return mixed
*/
public function _row($where){
$query = $this->db->get_where(null,$where,1);
$row = $query->row_array();
return $row;
}
/**
* 公用数据更新函数
* @param $where
* @param $data
* @return mixed
*/
public function _update($where,$data){
$this->db->where($where);
if($this->db->update($this->_table,$data)){
return $this->db->affected_rows();
}else{
return false;
}
}
/**
* 公用指定执行的数据库操作
* @param $map
* @return $this
*/
public function _map($map){
if(is_array($map)){
foreach($map as $key=>$data){
$this->db->{$key}($data);
}
}
return $this;
}
/**
* 公用限定数据返回调试
* @param $limit
* @param $offset
* @return $this
*/
public function _limit($limit, $offset){
$this->db->limit($limit,$offset);
return $this;
}
/**
* 公用获取结果集数量
* @return mixed
*/
public function _count(){
$numrows = $this->db->count_all_results();
//echo $this->db->last_query();
return $numrows;
}
/**
* 公用排序
* @param $orderField
* @param $orderDirection
* @return $this
*/
public function _order_by($orderField,$orderDirection){
$this->db->order_by($orderField,$orderDirection);
return $this;
}
/**
* 公用获取主键
* @return mixed
*/
public function _get_pk(){
$list_fields =$this->_list_fields($this->_table);
return $list_fields[0];
}
/**
* 允许你在SQL查询中写 SELECT 部分
* @param $field
* @param bool $src
* @return $this
*/
public function _select($field,$src=TRUE){
$this->db->select($field,$src);
return $this;
}
/*function update_entry()
{
$this->title = $_POST['title'];
$this->content = $_POST['content'];
$this->date = time();
$this->db->update('entries', $this, array('id' => $_POST['id']));
}*/
}
// END Model Class
/* End of file Model.php */
/* Location: ./system/core/Model.php */