首页 >

sqlserver2008及以上数据库操作封装类

php教程|php手册sqlserver2008及以上数据库操作封装类
sqlserver2008,以上,数据库,操作,封装,需要,
php教程-php手册
html 留言本 源码下载,vscode成员,ubuntu上网命令,晴空tomcat,sqlite 事务库,阿里云 国外服务器,手机抛物线插件,电信的前端框架,爬虫 post 参数,php实现留言板功能,峰少seo,phpcms网站访问量统计,免费html网页模板下载,织梦改了内容模板,dedecms 附件下载页面,教务管理系统asp,针对应用程序池的模板lzw
需要php_serv.dll支持,需要到微软官网下载 支持sqlserver2008(包括)以上版本 sqlserver2005以下就不需要尝试了,分页函数用法不支持的. 类比较简单,就不做演示了 http://www.du52.com/text.php?id=582 无 ?php/** * 数据库管理 * * @author wangaibo168@163.co
99源码网,ubuntu 删除文件不问,tomcat5.5配置内存,开源爬虫ip,php程序员郑州,颜射seolzw
帝国cms企业站源码,vscode建vue代码,ubuntu 卸载游戏,esb和tomcat区别,爬虫 java,php日历控件,广西seo有哪些品牌,vb.net制作下载网站,织梦模板建立二级lzw

需要php_serv.dll支持,需要到微软官网下载
支持sqlserver2008(包括)以上版本
sqlserver2005以下就不需要尝试了,分页函数用法不支持的.
类比较简单,就不做演示了
http://www.du52.com/text.php?id=582

.CodeEntity .code_pieces ul.piece_anchor{width:25px;position:absolute;top:25px;left:-30px;z-index:1000;} .CodeEntity .code_pieces ul.piece_anchor li{width:25px;background: #efe;margin-bottom:2px;} .CodeEntity .code_pieces ul.piece_anchor li{border-left:3px #40AA63 solid;border-right:3px #efe solid;} .CodeEntity .code_pieces ul.piece_anchor li:hover{border-right:3px #40AA63 solid;border-left:3px #efe solid;} .CodeEntity .code_pieces ul.piece_anchor li a{color: #333;padding: 3px 10px;} .CodeEntity .code_pieces .jump_to_code{visibility:hidden;position:relative;} .CodeEntity .code_pieces .code_piece:hover .jump_to_code{visibility:visible;} .CodeEntity .code_pieces .code_piece:hover .jump_to_code a{text-decoration:none;} .CodeEntity .code_pieces h2 i{float:right;font-style:normal;font-weight:normal;} .CodeEntity .code_pieces h2 i a{font-size:9pt;background: #FFFFFF;color:#00A;padding: 2px 5px;text-decoration:none;}



<?php/** * 数据库管理 * * @author wangaibo168@163.com * @charset utf-8 */class Db {    /**     * @var 数据库连接配置     */    private static $DbLink;    /**     * @var 数据库连接配置     */    private static $DbConfig;    /**     * @var 需要执行的SQL语句     */    private static $SqlStr;    /**     * @var 最后错误信息     */    private static $ErrorMsg;    /**     * 默认构造函数     */    private function __construct(){}    /**     * 配置连接参数     * @param $opt     */    public static function configure($opt){        if(!is_array($opt)) return;        self::$DbConfig = $opt;    }    /**     * 设置连接参数     * @param $key     * @param $value     */    public static function set($key,$value){        if(empty($key)) return;        if(!is_array(self::$DbConfig)) self::$DbConfig = array();        self::$DbConfig[$key] = $value;    }    /**     * 读取连接参数     * @param $key     * @return null     */    public static function get($key){        if(!is_array(self::$DbConfig) || empty($key) || !array_key_exists($key,self::$DbConfig)) return null;        return self::$DbConfig[$key];    }    /**     * 数据库连接参数检查     * @return bool     */    public static function check(){        $host = self::get('host');        if(empty($host)) return false;        $port = self::get('port');        if(!is_numeric($port) || $port65535) return false;        $username = self::get('username');        if(empty($username)) return false;        $database = self::get('database');        if(empty($database)) return false;        $charset = self::get('charset');        if(empty($charset)) return false;        return true;    }    /**     * 连接初始化     * @param bool $reconnect     */    public static function connect($reconnect=false){        if(!$reconnect && is_resource(self::$DbLink)) return;        self::close();        if(!self::check()) die('Database Configuration Error');        $opt = array('Database'=>self::get('database'),'CharacterSet'=>self::get('charset'),'UID'=>self::get('username'),'ReturnDatesAsStrings'=>true,'PWD'=>self::get('password'));        self::$DbLink = sqlsrv_connect(self::get('host').','.self::get('port'),$opt);        if(!is_resource(self::$DbLink)){            $err = sqlsrv_errors();            die('Database Connection Error('.$err[0]['message'].')');        }        // 测试连接是否可用        /*        $stmt = sqlsrv_query(self::$DbLink,'select 1 num');        if(!is_resource($stmt)){            $err = sqlsrv_errors();            die('Database Query Error('.$err[0]['message'].')');        }        sqlsrv_free_stmt($stmt);        */    }    /**     * 查询SQL语句     * @param $sql     * @param array $params     * @return array|bool     */    public static function executeQuery($sql,$params=array()){        self::$SqlStr = $sql;        self::$ErrorMsg = '';        if(empty($sql)) return false;        self::connect();        if(!is_array($params)){            $params = array();        }        $stmt = sqlsrv_query(self::$DbLink,self::$SqlStr,$params);        if(!is_resource($stmt)){            $err = sqlsrv_errors();            self::$ErrorMsg = $err[0]['message'];            return false;        }        $arr = explode(';',$sql);        if(count($arr)>1){            for($i=count($arr);$i>1;$i--){sqlsrv_next_result($stmt);            }        }        $rows = array();        while($row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC)){            $rows[] = $row;        }        sqlsrv_free_stmt($stmt);        return $rows;    }    /**     * 查询SQL语句     * @param $sql     * @param array $params     * @return bool|int     */    public static function executeCount($sql,$params=array()){        self::$SqlStr = $sql;        self::$ErrorMsg = '';        if(empty($sql)) return false;        self::connect();        if(!is_array($params)){            $params = array();        }        $stmt = sqlsrv_query(self::$DbLink,self::$SqlStr,$params);        if(!is_resource($stmt)){            $err = sqlsrv_errors();            self::$ErrorMsg = $err[0]['message'];            return false;        }        $row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_NUMERIC);        $count = 0;        if(is_array($row) && count($row)==1){            $count = intval($row[0]);        }        sqlsrv_free_stmt($stmt);        return $count;    }    /**     * 执行SQL语句     * @param $sql     * @param array $params     * @return bool|int     */    public static function executeUpdate($sql,$params=array()){        self::connect();        self::$SqlStr = $sql;        self::$ErrorMsg = '';        if(empty($sql)) return false;        self::connect();        if(!is_array($params)){            $params = array();        }        $stmt = sqlsrv_query(self::$DbLink,self::$SqlStr,$params);        if(!is_resource($stmt)){            $err = sqlsrv_errors();            self::$ErrorMsg = $err[0]['message'];            return false;        }        $num = sqlsrv_rows_affected($stmt);        sqlsrv_free_stmt($stmt);        return $num;    }    /**     * 返回服务器信息     * @return array     */    public static function serverInfo(){        self::connect();        return sqlsrv_server_info(self::$DbLink);    }    /**     * 返回客户端信息     * @return array|null     */    public static function clientInfo(){        self::connect();        return sqlsrv_client_info(self::$DbLink);    }    /**     * 构建表SQL     * @param $table     * @return string     */    private static function tableSql($table){        if(empty($table)) return '';        if(is_array($table)){            $arr = array();            foreach($table as $k=>$v){$arr[] = '['.$v.'] '.$k;            }            $tableSql = implode(',',$arr);        }else{            $tableSql = '['.$table.']';        }        return $tableSql;    }    /**     * 构建字段SQL     * @param $field     * @return string     */    private static function fieldSql($field){        if(empty($field)) return '*';        if(is_array($field)){            $fieldSql = '['.implode('],[',$field).']';        }else{            $fieldSql = $field;        }        return $fieldSql;    }    /**     * 构建条件SQL     * @param $where     * @return string     */    private static function whereSql($where){        if(empty($where)) return '';        $whereSql = ' where ';        if(is_array($where)){            $whereSql .= implode(' and ',$where);        }else{            $whereSql .= $where;        }        return $whereSql;    }    /**     * 构建排序SQL     * @param $order     * @return string     */    private static function orderSql($order){        if(empty($order)) return '';        $orderSql = ' order by ';        if(is_array($order)){            $orderSql .= implode(',',$order);        }else{            $orderSql .= $order;        }        return $orderSql;    }    /**     * 统计数据量     * @param $table     * @param $where     * @param null $values     * @return bool|int     */    public static function count($table,$where,$values=null){        if(empty($table)) return false;        $tableSql = self::tableSql($table);        $whereSql = self::whereSql($where);        self::$SqlStr = 'select count(*) from '.$tableSql.$whereSql;        return self::executeCount(self::$SqlStr,$values);    }    /**     * 添加数据     * @param $table     * @param $data     * @return bool|int|string     */    public static function add($table,$data){        if(empty($table) || !is_array($data) || count($data)==0) return false;        self::connect();        $fields = array();        $values = array();        $places = array();        foreach($data as $key=>$value){ // 忽略以下划线开头的键            if(stripos($key,'_')===0) continue;            $fields[] = '['.$key.']';            $values[] = $value;            $places[] = '?';        }        self::$SqlStr = 'insert into ['.$table.']('.implode(',',$fields).')values('.implode(',',$places).')';        $num = self::executeUpdate(self::$SqlStr,$values);        return $num>0;    }    /**     * 插入数据并获取最后插入数据的ID(自增长数据)     * @param $table     * @param $data     * @return bool|int|string     */    public static function autoIdAdd($table,$data){        if(empty($table) || !is_array($data) || count($data)==0) return false;        self::connect();        $fields = array();        $values = array();        $places = array();        foreach($data as $key=>$value){ // 忽略以下划线开头的键            if(stripos($key,'_')===0) continue;            $fields[] = '['.$key.']';            $values[] = $value;            $places[] = '?';        }        self::$SqlStr = 'insert into ['.$table.']('.implode(',',$fields).')values('.implode(',',$places).');select top 1 SCOPE_IDENTITY() id';        $rows = self::executeQuery(self::$SqlStr,$values);        if(!is_array($rows) || count($rows)==0) return false;        $id = $rows[0]['id'];        if(!is_numeric($id)) return false;        return $id;    }    /**     * 更新数据     * @param $table     * @param $data     * @param $where     * @param null $value     * @return bool     */    public static function update($table,$data,$where,$value=null){        if(empty($table) || empty($where)) return false;        self::connect();        $whereSql = self::whereSql($where);        $values = array();        $places = array();        foreach($data as $key=>$v){            if(stripos($key,'_')===0) continue;            $values[] = $v;            $places[] = '['.$key.']=?';        }        foreach($value as $v){            $values[] = $v;        }        self::$SqlStr = 'update ['.$table.'] set '.implode(',',$places).$whereSql;        $num = self::executeUpdate(self::$SqlStr,$values);        return $num>0;    }    /**     * 删除数据     * @param $table     * @param $where     * @param null $values     * @return bool     */    public static function delete($table,$where,$values=null){        if(empty($table) || empty($where)) return false;        self::connect();        $tableSql = self::tableSql($table);        $whereSql = self::whereSql($where);        self::$SqlStr = 'delete from '.$tableSql.$whereSql;        $num = self::executeUpdate(self::$SqlStr,$values);        return $num>0;    }    /**     * 查询数据(全部)     * @param $table     * @param $field     * @param $where     * @param $order     * @param null $values     * @return array|bool     */    public static function fetchAll($table,$field,$where,$order,$values=null){        if(empty($table)) return false;        $tableSql = self::tableSql($table);        $fieldSql = self::fieldSql($field);        $whereSql = self::whereSql($where);        $orderSql = self::orderSql($order);        self::$SqlStr = 'select '.$fieldSql.' from '.$tableSql.$whereSql.$orderSql;        $rows = self::executeQuery(self::$SqlStr,$values);        return $rows;    }    /**     * 查询数据(分页)     * @param $table     * @param $page     * @param $size     * @param $field     * @param $where     * @param $order     * @param null $values     * @return array|bool     */    public static function fetchPage($table,$page,$size,$field,$where,$order,$values=null){        if(empty($table)) return false;        $tableSql = self::tableSql($table);        $fieldSql = self::fieldSql($field);        $whereSql = self::whereSql($where);        $orderSql = self::orderSql($order);        $size = intval($size);        if($size<=0) $size = 10;        $start = ($page-1)*$size;        if($start'.$start;        $rows = self::executeQuery(self::$SqlStr,$values);        return $rows;    }    /**     * 查询数据(单条)     * @param $table     * @param $field     * @param $where     * @param $order     * @param null $values     * @return bool     */    public static function fetchOne($table,$field,$where,$order,$values=null){        if(empty($table)) return false;        $tableSql = self::tableSql($table);        $fieldSql = self::fieldSql($field);        $whereSql = self::whereSql($where);        $orderSql = self::orderSql($order);        self::$SqlStr = 'select top 1 '.$fieldSql.' from '.$tableSql.$whereSql.$orderSql;        $rows = self::executeQuery(self::$SqlStr,$values);        if(!is_array($rows) || count($rows)!=1) return false;        return $rows[0];    }    /**     * 获取单个字段数据     * @param $table     * @param $name     * @param string $def     * @param null $where     * @param null $order     * @param null $values     * @return string     */    public static function fetchField($table,$name,$def='',$where=null,$order=null,$values=null){        if(empty($name)) return $def;        $data = self::fetchOne($table,$name,$where,$order,$values);        if(!is_array($data)) return $def;        return $data[$name];    }    /**     * 获取最后插入的数据ID     * @param $table     * @return int|string     */    public static function lastId($table){        $sql = 'select top 1 IDENT_CURRENT(\'['.$table.']\') id';        $rows = self::executeQuery($sql);        if(!is_array($rows) || count($rows)!=1) return -1;        $id = $rows[0]['id'];        if(!is_numeric($id)) return -1;        return $id;    }    /**     * 获取最后执行的SQL语句     * @return mixed     */    public static function lastSql(){        return self::$SqlStr;    }    /**     * 获取错误     * @return mixed     */    public static function lastError(){        return self::$ErrorMsg;    }    /**     * 获取连接字串     * @return mixed     */    public static function getDb(){        return self::$DbLink;    }    /**     * 关闭连接     */    public static function close(){        if(is_resource(self::$DbLink)) sqlsrv_close(self::$DbLink);        self::$DbLink = null;    }}?>

sqlserver2008及以上数据库操作封装类
  • SQLServer2008----对数据分区
  • SQLServer2008----对数据分区 | SQLServer2008----对数据分区 ...

    sqlserver2008及以上数据库操作封装类
  • sqlserver2008中自定义函数的问题
  • sqlserver2008中自定义函数的问题 | sqlserver2008中自定义函数的问题 ...

    sqlserver2008及以上数据库操作封装类
  • SQLServer2008
  • SQLServer2008 | SQLServer2008 ...