PHP PDO 封装 成静态类

简介: 接着上页:http://blog.csdn.net/fenglailea/article/details/15335575 接着上肉 /** * Class DB * 数据库操作类 */class DB { /** * @var * @return CDB */ private static $db; /**获取CDb类

接着上页:http://blog.csdn.net/fenglailea/article/details/15335575

接着上肉

/**
 * Class DB
 * 数据库操作类
 */
class DB {
    /**
     * @var
     * @return CDB
     */
    private static $db;
    /**获取CDb类
     * @param $table_name 表名称
     * @param string $db_setting 调用数据库配置项
     * @param array $db_config 数据库配置
     * @return CDb
     */
    public static function cdb($table_name='',$db_setting='default',$db_config=array()){
        if(!isset(self::$db)){
            $db = new CDb($table_name,$db_setting,$db_config);
            self::$db=$db;
        }else{
            $db=self::$db;
        }
        return $db;
    }
    /** 配置
     * @param $table_name 表名称
     * @param string $db_setting 调用数据库配置项
     * @param array $db_config 数据库配置
     * @return CDb
     */
    public static function init($table_name='',$db_setting='default',$db_config=array()) {
        return self::cdb($table_name,$db_setting,$db_config);
    }
    /**
     * 执行删除记录操作
     * @param $table 表名称
     * @param $condition 	删除数据条件,不充许为空。可以为数组
     * @return boolean
     */
	public static function delete($table, $condition) {
        $db=self::cdb();
        $db->setTableName($table);
        return $db->delete($condition);
	}
    /**
     * 执行添加记录操作
     * @param $table 表名称
     * @param array $data 		要增加的数据,参数为数组。数组key为字段值,数组值为数据取值
     * @param bool $return_insert_id 是否返回新建ID号
     * @param bool $replace 是否采用 replace into的方式添加数据
     * @return boolean
     */
	public static function insert($table, $data, $return_insert_id = false, $replace = false) {
        $db=self::cdb();
        $db->setTableName($table);
        return $db->insert($data, $return_insert_id, $replace);
	}
    /**
     * 获取最后一次添加记录的主键号
     * @return int
     */
    public static function insertID() {
        $db=self::cdb();
        return $db->insert_id();
    }
    /**
     * 执行更新记录操作
     * @param $table 表名称
     * @param $data 		要更新的数据内容,参数为数组
     * 						为数组时数组key为字段值,数组值为数据取值
     *						为数组时[例: array('name'=>'lanmps','password'=>'123456')]
     *						数组的另一种使用array('name'=>'+=1', 'base'=>'-=1');程序会自动解析为`name` = `name` + 1, `base` = `base` - 1
     *						字符串,请按照格式 :
     * 						字符串 [例2:array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
     * @param $where 		更新数据时的条件,
     * 						字符串,请按照格式 :
     *                      字符串 [例1:" id=1 and time>$time " ]
     * 						字符串 [例2:array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
     * 						数组时 [例: array('name'=>'lanmps','password'=>'123456')]
     * @return boolean
     */
	public static function update($table, $data, $where) {
        $db=self::cdb();
        $db->setTableName($table);
        return $db->update($data,$where);
	}
    /**
     * 获取单条记录查询
     * @param array $sql 		查询条件语句
     * @return array/null	数据查询结果集,如果不存在,则返回空
     */
	public static function fetchFirst($sql) {
        $db=self::cdb();
        return $db->fetch($sql);
	}
    /**
     * 执行sql查询
     * @param $sql 		查询条件
     * @return array	查询结果集数组
     */
	public static function fetchAll($sql) {
        $db=self::cdb();
        return $db->fetchAll($sql);
	}
    /**
     * 直接执行sql查询
     * @param $sql							查询sql语句
     * @return
     */
    public static function query($sql) {
        $db=self::cdb();
        return $db->exec($sql);
    }
    /**
     * 执行sql查询
     * @param $table 表名称
     * @param $where 		查询条件
     *   					字符串,请按照格式 :
     *                      字符串 [例1:" id=1 and time>$time " ]
     * 						字符串 [例2:array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
     * 						数组时 [例: array('name'=>'lanmps','password'=>'123456')]
     * @param $fields 		需要查询的字段值[例`name`,`gender`,`birthday`]
     * @param $limit 		返回结果范围[例:10或10,10 默认为空]
     * @param $order 		排序方式	[默认按数据库默认方式排序]
     * @param $group 		分组方式	[默认为空]
     * @return array		查询结果集数组
     */
    public static function select($table,$where = '', $fields = '*', $limit = '', $order = '', $group = '') {
        $db=self::cdb();
        $db->setTableName($table);
        return $db->select($where , $fields , $limit, $order , $group);
    }
    /**
     * 获取单条记录查询
     * @param $table 表名称
     * @param array $where 		查询条件语句
     *  					字符串,请按照格式 :
     * 						字符串 [例2:array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
     * 						数组时 [例: array('name'=>'lanmps','password'=>'123456')]
     * @param string $fields 		需要查询的字段值[例`name`,`gender`,`birthday`]
     * @param string $order 		排序方式	[默认按数据库默认方式排序]
     * @param string $group 		分组方式	[默认为空]
     * @return array/null	数据查询结果集,如果不存在,则返回空
     */
    public static function getOne($table,$where,$fields = '*', $order = '', $group = '') {
        $db=self::cdb();
        $db->setTableName($table);
        return $db->get_one($where , $fields,$order, $group);
    }
    /**
     * 查询多条数据并分页
     * @param $table 表名称
     * @param $where        查询条件
     *   					字符串,请按照格式 :
     *                      字符串 [例1:" id=1 and time>$time " ]
     * 						字符串 [例2:array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
     * 						数组时 [例: array('name'=>'lanmps','password'=>'123456')]
     * @param $fields       字段 *,id
     * @param $order        排序 id desc ,orderlist asc
     * @param $page         页码 1
     * @param $pagesize     每页条数
     * @return array('data'=>数据,'count'=>记录总数)
     */
    public static function listInfo($table,$where = '',$fields='*', $order = '', $page = 1, $pagesize = 20) {
        $db=self::cdb();
        $db->setTableName($table);
        $d=$db->listinfo($where,$fields, $order, $page, $pagesize);
        return array('data'=>$d,'count'=>self::$db->number);
    }
    /**第一个参数值
     * @param $sql
     * @return mixed
     */
    public static function resultFirst($sql){
        $db=self::cdb();
        return $db->resultFirst($sql);
    }

}

怎么吃,使用方法:

DB::insert('test',array('name'=>'test'));


目录
相关文章
|
3月前
|
关系型数据库 MySQL API
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
|
4月前
|
JSON PHP 数据格式
PHP curl方法封装
PHP curl方法封装
31 0
|
4月前
|
NoSQL PHP Redis
PHP Redis 封装
PHP Redis 封装
17 0
|
3月前
|
PHP
HYBBS 表白墙网站PHP程序源码 可封装成APP
HYBBS 表白墙网站PHP程序源码 可封装成APP
33 1
|
8月前
|
PHP 数据安全/隐私保护
php获取随机不重复数字(封装函数直接拿来用)
在PHP中获取随机值这种操作非常常见,比如订单号,密码加密,以及验证码等,那么在本文介绍一种获取随机不重复数字的函数。
56 0
|
8月前
|
PHP
php实现接口的封装
php实现接口的封装
|
9月前
|
PHP
php开发实战分析(4):php调用封装函数包含文件路径自适应不同目录的解决方案($_SERVER[‘DOCUMENT_ROOT‘]与__DIR__魔术常量)
php开发实战分析(4):php调用封装函数包含文件路径自适应不同目录的解决方案($_SERVER[‘DOCUMENT_ROOT‘]与__DIR__魔术常量)
132 0