博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据表操作类
阅读量:6036 次
发布时间:2019-06-20

本文共 2859 字,大约阅读时间需要 9 分钟。

<?php  
 
/*
  * 自动化数据表操作类 
  * @author 小蔡   <cyy0523xc@gmail.com> 
  * @version 1.0 
  
*/  
 
class cls_crud extends cls_database  
 {  
     
/*
      * 数据表名 
      * @var string 
      
*/  
     
private $table = 
'';  
     
/*
      * 构造函数 
      * @param array $config     配置变量 
      
*/  
     
public function __construct($config)  
     {  
         
if(!emptyempty($config))  
         {  
             
foreach($config 
as $cf => $val)  
             {  
                 $
this->$cf = $val;  
             }  
         }  
         parent::__construct();  
     }  
     
/*
      * 设置数据表(例如:在操作的过程中需要改变数据表,就可以使用此方法) 
      * @param string $table 
      
*/  
     
public function set_table($table)  
     {  
         $
this->table = $table;  
     }  
     
/*
      * 读取一条记录 
      * @param string $id        主键 
      * @param string $fields    获取字段 
      * @return array 
      
*/  
     
public function read($id, $fields=
'
*
')  
     {  
         $sql = 
"
SELECT {$fields} FROM `{$this->table}` WHERE `id`='{$id}'
";  
         $
this->query($sql);  
         
return $
this->fetch_one();  
     }  
     
/*
      * 插入一条记录 
      * @param array $array  数组 
      * @return bool 
      
*/  
     
public function insert($array)  
     {  
         $fields = array();  
         $values = array();  
         
foreach($array 
as $f => $v)  
         {  
             $fields[] = 
"
`{$f}`
";  
             $values[] = 
"
'
".mysql_real_escape_string($v).
"
'
";  
         }  
         $fields = implode(
'
,
', $fields);  
         $values = implode(
'
,
', $values);  
         $sql = 
"
INSERT INTO `{$this->table}`({$fields}) VALUES({$values})
";  
         
return $
this->query($sql);  
     }  
     
/*
      * 更新一条记录 
      * @param int   $id     主键 
      * @param array $array  数据数组 
      
*/  
     
public function update($id, $array)  
     {  
        $values = array();  
         
foreach($array 
as $f => $v)  
         {  
             $values[] = 
"
`{$f}`='
".mysql_real_escape_string($v).
"
'
";  
         }  
         $values = implode(
'
,
', $values);  
         $sql = 
"
UPDATE `{$this->table}` SET {$values} WHERE id='{$id}' limit 1
";  
         
return $
this->query($sql);  
     }  
     
/*
      * 删除一条记录 
      * @param int $id   主键 
      * @return bool 
      
*/  
     
public function delete($id)  
     {  
         $sql = 
"
DELETE FROM `{$this->table}` WHERE id='{$id}' limit 1
";  
         
return $
this->query($sql);  
     }  
     
/*
      * 获取分页列表的数据 
      * @param array  $wheres    where条件数组,如果下标是数字,则直接加入条件,否则组合成:`{下标}`='{值}'这样的条件。最后用and链接 
      * @param string $order     排序字段 
      * @param int    $desc      是否是降序 
      * @param int    $offset    偏移量 
      * @param int    $limit     读取记录数 
      * @param int    $return_total  是否返回满足条件的记录总数,默认为0,需要显示分页时可以设置为1. 
      * @return array 
      
*/  
     
public function get_list($wheres, $order=
'', $desc=
1, $offset=
0, $limit=
8, $return_total=
0)  
     {  
         
//
处理where条件  
         
if($wheres)  
         {  
             $
where = array();  
             
foreach($wheres 
as $f => $v)  
             {  
                 
if(is_numeric($f))  
                 {  
                     $
where[] = $v;  
                 }  
                 
else  
                 {  
                     $
where[] = 
"
`{$f}`='
".mysql_real_escape_string($v).
"
'
";  
                 }  
             }  
             $
where = implode(
'
 and 
', $
where);  
         }  
         
else  
         {  
             $
where = 
'
1
';  
         }  
         
//
处理orderby  
         
if(!emptyempty($order))  
         {  
             $order = 
"
order by `{$order}` 
" . (
1===$desc ? 
'
desc
' : 
'
asc
');  
         }  
         $sql = 
"
SELECT * FROM `{$this->table}` WHERE {$where} {$order} limit {$offset}, {$limit}
";  
         $
this->query($sql);  
         $data = $
this->fetch_all();  
         
if($return_total)  
         {  
             
//
返回记录总数(分页)  
             $sql = 
"
SELECT count(*) FROM `{$this->table}` WHERE {$where}
";  
             $
this->query($sql);  
             $total = $
this->fetch_one();  
             
return array(
'
total
'=>current($total), 
'
list
'=>$data);  
         }  
         
else  
         {  
             
return $data;  
         }  
     }  
 }  

转载于:https://www.cnblogs.com/qhorse/p/4588005.html

你可能感兴趣的文章
挖掘你不知道的windowsxp中的带宽潜能
查看>>
Software Engineering 招聘要求
查看>>
【转载】InstallAnyWhere自动化制作安装包的知识
查看>>
69、iSCSI共享存储配置实战
查看>>
文本编程
查看>>
乔布斯走了。你还期待苹果吗?
查看>>
优先级
查看>>
Tomcat与Web服务器、应用服务器的关系
查看>>
用DFS实现全排列 & 八皇后问题
查看>>
深度学习博客
查看>>
Android总结篇系列:Android Service
查看>>
Android dumpsys命令的使用
查看>>
Linux Kernel系列一:开篇和Kernel启动概要
查看>>
BZOJ 2756: [SCOI2012]奇怪的游戏 网络流/二分
查看>>
master + worker模式的node多核解决框架——node-cluster
查看>>
Android如何实现超级棒的沉浸式体验
查看>>
使用node打造自己的命令行工具方法教程
查看>>
Express代理中间件问题与解决方案
查看>>
||和&&返回什么?
查看>>
linux在文件中查找指定字符串,然后根据查找结果来做进一步的处理
查看>>