PHP PDO 封装 成静态类

接着上页: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'));
时间: 2024-09-20 03:16:28

PHP PDO 封装 成静态类的相关文章

封装dll-C# 中如何将一个类文件 封装成.dll文件

问题描述 C# 中如何将一个类文件 封装成.dll文件 我现在在c#程序里面写了几个通用的类,里面包括数据库的操作,网页表单的基本验证以及自己平时总结的一些很好用的方法,我现在想把这些类或者某一个类封装成一个dll文件,最好是所有的类都封装成一个dll,想请问一下各位怎么做,以前没做过将类封装成dll,麻烦大家帮帮小弟,最好有代码,谢谢了! 解决方案 封装成dll不就是将它编译成dll吗? 在bin文件下就有编译的dll 解决方案二: 在VS中新建一个类库工程,把你的类文件导到新建的工程里,编译

用VB将ASP代码封装成DLL

封装|封装 摘 要 主要介绍用VB将ASP代码封装成DLL以保护 ASP代码和加快ASP代码的执行速度.节省服务器的资源关键词 ASP,DLL,编程一.引言Server端的脚本运行环境,它简单易用,不需要编译和连接,脚本可以在 Server端直接运行,并且它支持多用户.多线程,在 Web开发中得到了广泛的应用.服务器端的组件有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用,而且只能在IE上有用.但是服务器端的组件是运行在服务器端,它在服务器上执行各种操作.因此,所有的浏览器都

把jQuery的类、插件封装成seajs的模块的方法

 这篇文章主要介绍了把jQuery的类.插件封装成seajs的模块的方法,需要的朋友可以参考下 注:本文使用的seajs版本是2.1.1 一.把Jquery封装成seajs的模块    代码如下:define(function () {      //这里放置jquery代码 把你喜欢的jquery版本放进来就好了      return $.noConflict(); });     调用方法: 这样引进就可以像以前一样使用jquery    代码如下:define(function (req

jquery自动将form表单封装成json的具体实现

 这篇文章主要介绍了jquery自动将form表单封装成json的具体实现,需要的朋友可以参考下 前端页面:  代码如下: <span style="font-size:14px;"> <form action="" method="post" id="tf">  <table width="100%" cellspacing="0" cellpadding

使用VS快速将类方法封装成Web服务

在项目中有时需要将整个业务逻辑类下面的方法封装成Web服务,由于只是简单的封装,在Web服务的后台代码中不会写上任何逻辑,这时我们就需要Web服务提供的方法与类下面提供的方法相同,这是就考虑到使用接口.申明一个接口,然后让业务逻辑类和Web服务类都实现该接口即可.这里我们就要用到VS中一个很好的功能:重构! 假设我们现在有一个业务逻辑类HelloLogic用于处理一些业务逻辑,如:   namespace Hello{    public class HelloLogic    {       

写好的c程序如何封装成dll动态库

问题描述 写好的c程序如何封装成dll动态库 写好的c程序如何封装成dll动态库?其中此程序中已经调用了一个dll动态库.这种情况的要如何封装呢?即程序中包含普通函数和dll动态库.之前都没有做过这样的,小白菜一个,望知情人指教,最好附上详细的例子,谢谢! 解决方案 新建一个 dll 类型的项目,将程序贴进去,该使用的lib.h包括进来,在导出文件中写好函数名.即可. 你可以理解,windows api也是dll,c runtime也是dll,所以dll调用dll很正常很普遍,甚至不知不觉你早就

c++-如何将C++的大工程封装成dll或lib当做黑盒使用?

问题描述 如何将C++的大工程封装成dll或lib当做黑盒使用? 如何将C++的大工程封装成dll或lib当做黑盒使用?这个工程比较大,里面有很多自己写的头文件已经引用的dll 如何把这个工程直接封装成dll作为输入输出机似的黑盒子? 解决方案 大一点的项目比较困难尤其是有很多全局变量,这个只能靠耐心,一点一点改写.也可以不要用dll,直接用exe,靠程序启动的命令行参数调用. 解决方案二: 你可以自己做一个wrapper的DLL,它内部再调用工程的其他dll,lib库等. 这样有一个好处,模块

急求:如何将vs的一个已经写好的mfc含有界面的主程序封装成mfcdll,供其他程序调用?

问题描述 急求:如何将vs的一个已经写好的mfc含有界面的主程序封装成mfcdll,供其他程序调用? 两个项目同时进行,一个是3d,一个是2d,现在需要把两个合在一起,需要把3d的mfc项目封装成dll供2d的mfc调用. 解决方案 一个完整的程序封装成dll是一个复杂的事情,尤其是你的程序使用了mfc框架,并且有大量的全局变量.你的团队要有足够的资源去做这件事情,它不亚于从头开发. 如果你们没有足够的资源,最好还是采用进程通讯和进程调用的方法,避免源代码的大改. 解决方案二: 直接利用VS的工

将list封装成json返回后,取出来的list结果是undefined

问题描述 将list封装成json返回后,取出来的list结果是undefined 将list封装成json返回后,取出来的list结果是undefined,status和msg传送的结果正常 $(function (){ $.ajax({ url:"http://localhost:8080/Contract/eduwest/foundAll.form", type:"post", async:false, dataType:"json", s