load->database(); } /** * 把数据写入表 * @param string $table 表名 * @param array $arr 待写入数据 */ protected function create($table,$arr) { return $this->db->insert($table, $arr); } /** * 根据id读取一条记录 * @param string $table 读取的表 * @param int $id 主键id * @return array 一条记录信息数组 */ protected function read($table,$id) { return $this->db->get_where($table, array('id' => $id))->row_array(); } /** * 按id返回指定列,id可以是批量 * @param string $select 指定字段,例:'title, content, date' * @param string $table 查询的目标表 * @param int,array $id 主键id,或id数组 * @return array 返回对象数组 */ protected function select_where($select,$table,$id) { $this->db->select($select); $this->db->from($table); if(is_array($id)){ $this->db->where_in('id',$id); return $this->db->get()->result(); }else{ $this->db->where('id',$id); return $this->db->get()->result(); } } /** * 根据id更新数据 * @param string $table 查询的目标表 * @param int $id 主键id * @param array $arr 新的数据 */ protected function update($table,$id,$arr) { $this->db->where('id',$id); return $this->db->update($table,$arr); } /** * 删除数据 * id可以是单个,也可以是个数组 * @param string $table 查询的目标表 * @param int|array $id 主键id,或id数组 */ protected function delete($table,$id) { if(is_array($id)){ $this->db->where_in('id',$id); return $this->db->delete($table); } return $this->db->delete($table, array('id' => $id)); } /** * 检测某字段是否已经存在某值 * * 存在返回该记录的信息数组,否则返回false * @param string $table 查询的目标表 * @param string $field 条件字段 * @param string $value 条件值 * @return false,array 返回false或存在的记录信息数组 */ protected function is_exists($table,$field,$value) { $query = $this->db->get_where($table, array($field => $value)); if($query->num_rows() > 0) return $query->row_array(); return false; } /** * 分页列出数据 * @param string $table 表名 * @param int $limit 记录数 * @param int $offset 偏移量 * @param string $sort_by 排序字段 默认id * @param string $sort 排序 默认倒序desc,asc,random * @param string,null where条件,默认为空 * @return object 返回记录对象数组 */ protected function list_data($table,$limit,$offset,$sort_by='id',$sort='desc',$where=null) { if(! is_null($where)) { $this->db->where($where); } $this->db->order_by($sort_by,$sort); return $this->db->get($table,$limit,$offset)->result(); } /** * 总记录数 * @param string $table 表名 */ protected function count($table) { return $this->db->count_all($table); } /** * 按条件统计记录 * @param string $table 表名 * @param string $where 条件 */ protected function count_where($table,$where) { $this->db->from($table); $this->db->where($where); $result = $this->db->get(); return $result->num_rows(); } /** * 列出全部 * @param string $table 表名 */ protected function list_all($table) { return $this->db->get($table)->result(); } /** * 列出全部根据条件 * @param string $table 表名 * @param string $where where条件字段 * @param string $value where的值 * @param string $sort_by 排序字段 * @param string $sort 排序方式 */ protected function list_all_where($table,$where,$value,$sort_by='id',$sort='desc') { $this->db->from($table); if($where!='' and $value!=''){ $this->db->where($where,$value); } $this->db->order_by($sort_by,$sort); return $this->db->get()->result(); } /** * 列出数据(两个表关联查询) * @param string $select 查询字段 * @param string $table1 表名1 * @param string $table2 表名2 * @param string $on 联合条件 * @param int $limit 读取记录数 * @param int $offset 偏移量 * @param string $sort_by 排序字段,默认id * @param string $sort 排序方式,默认降序 * @param string $where 过滤条件 * @param string $join_type 链接方式,默认left */ protected function list_data_join($select,$table1,$table2,$on,$limit,$offset,$sort_by="id",$sort='DESC',$where=null,$join_type='left') { $this->db->select($select); $this->db->from($table1); if(! is_null($where)) { $this->db->where($where); } $this->db->join($table2,$on,$join_type); $this->db->limit($limit,$offset); $this->db->order_by($sort_by,$sort); return $this->db->get()->result(); } /** * 设置状态 * 状态字段必须是status * @param string $table 表名 * @param int $id 主键id的值 * @param int $status 状态值 */ protected function set_status($table,$id,$status) { $this->db->where('id',$id); $this->db->set('status',$status); return $this->db->update($table); } /** * 析构函数 * * 关闭数据库连接 */ public function __destruct() { //$this->db->close(); } } /* End of file MY_Model.php */ /* Location: ./application/core/MY_Model.php */