PHP封装的MSSql操作类完整实例


Posted in PHP onMay 26, 2016

本文实例讲述了PHP封装的MSSql操作类。分享给大家供大家参考,具体如下:

<?php
/*MSSql的操作类*/
class MSSql {
  var $link;
  var $querynum = 0;
  /*连接MSSql数据库,参数:dbsn->数据库服务器地址,dbun->登陆用户名,dbpw->登陆密码,dbname->数据库名字*/
  function Connect($dbsn, $dbun, $dbpw, $dbname) {
    if($this->link = @mssql_connect($dbsn, $dbun, $dbpw, true)) {
      $query = $this->Query('SET TEXTSIZE 2147483647');
      if (@mssql_select_db($dbname, $this->link)) {
      } else {
        $this->halt('Can not Select DataBase');
      }
    } else {
      $this->halt('Can not connect to MSSQL server');
    }
  }
  /*执行sql语句,返回对应的结果标识*/
  function Query($sql) {
    if($query = @mssql_query($sql, $this->link)) {
      $this->querynum++;
      return $query;
    } else {
      $this->querynum++;
      $this->halt('MSSQL Query Error', $sql);
    }
  }
  /*执行Insert Into语句,并返回最后的insert操作所产生的自动增长的id*/
  function Insert($table, $iarr) {
    $value = $this->InsertSql($iarr);
    $query = $this->Query('INSERT INTO ' . $table . ' ' . $value . '; SELECT SCOPE_IDENTITY() AS [insertid];');
    $record = $this->GetRow($query);
    $this->Clear($query);
    return $record['insertid'];
  }
  /*执行Update语句,并返回最后的update操作所影响的行数*/
  function Update($table, $uarr, $condition = '') {
    $value = $this->UpdateSql($uarr);
    if ($condition) {
      $condition = ' WHERE ' . $condition;
    }
    $query = $this->Query('UPDATE ' . $table . ' SET ' . $value . $condition . '; SELECT @@ROWCOUNT AS [rowcount];');
    $record = $this->GetRow($query);
    $this->Clear($query);
    return $record['rowcount'];
  }
  /*执行Delete语句,并返回最后的Delete操作所影响的行数*/
  function Delete($table, $condition = '') {
    if ($condition) {
      $condition = ' WHERE ' . $condition;
    }
    $query = $this->Query('DELETE ' . $table . $condition . '; SELECT @@ROWCOUNT AS [rowcount];');
    $record = $this->GetRow($query);
    $this->Clear($query);
    return $record['rowcount'];
  }
  /*将字符转为可以安全保存的mssql值,比如a'a转为a''a*/
  function EnCode($str) {
    return str_replace(''', '''', str_replace('', '', $str));
  }
  /*将可以安全保存的mssql值转为正常的值,比如a''a转为a'a*/
  function DeCode($str) {
    return str_replace('''', ''', $str);
  }
  /*将对应的列和值生成对应的insert语句,如:array('id' => 1, 'name' => 'name')返回([id], [name]) VALUES (1, 'name')*/
  function InsertSql($iarr) {
    if (is_array($iarr)) {
      $fstr = '';
      $vstr = '';
      foreach ($iarr as $key => $val) {
        $fstr .= '[' . $key . '], ';
        $vstr .= ''' . $val . '', ';
      }
      if ($fstr) {
        $fstr = '(' . substr($fstr, 0, -2) . ')';
        $vstr = '(' . substr($vstr, 0, -2) . ')';
        return $fstr . ' VALUES ' . $vstr;
      } else {
        return '';
      }
    } else {
      return '';
    }
  }
  /*将对应的列和值生成对应的insert语句,如:array('id' => 1, 'name' => 'name')返回[id] = 1, [name] = 'name'*/
  function UpdateSql($uarr) {
    if (is_array($uarr)) {
      $ustr = '';
      foreach ($uarr as $key => $val) {
        $ustr .= '[' . $key . '] = '' . $val . '', ';
      }
      if ($ustr) {
        return substr($ustr, 0, -2);
      } else {
        return '';
      }
    } else {
      return '';
    }
  }
  /*返回对应的查询标识的结果的一行*/
  function GetRow($query, $result_type = MSSQL_ASSOC) {
    return mssql_fetch_array($query, $result_type);
  }
  /*清空查询结果所占用的内存资源*/
  function Clear($query) {
    return mssql_free_result($query);
  }
  /*关闭数据库*/
  function Close() {
    return mssql_close($this->link);
  }
  function halt($message = '', $sql = '') {
    $message .= '<br />MSSql Error:' . mssql_get_last_message();
    if ($sql) {
      $sql = '<br />sql:' . $sql;
    }
    exit("DataBase Error.<br />Message $message $sql");
  }
}
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
网站防止被刷票的一些思路与方法
Jan 08 PHP
php打印一个边长为N的实心和空心菱型的方法
Mar 02 PHP
php中执行系统命令的方法
Mar 21 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 PHP
php对文件夹进行相关操作(遍历、计算大小)
Nov 04 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
php正则提取html图片(img)src地址与任意属性的方法
Feb 08 PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 PHP
详解Yii2高级版引入bootstrap.js的一个办法
Mar 21 PHP
PHP实现微信小程序用户授权的工具类示例
Mar 05 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
May 26 #PHP
基于PHP实现数据分页显示功能
May 26 #PHP
yii2实现根据时间搜索的方法
May 25 #PHP
Yii2框架使用计划任务的方法
May 25 #PHP
提交表单后 PHP获取提交内容的实现方法
May 25 #PHP
PHP中类的继承和用法实例分析
May 24 #PHP
PHP中抽象类和抽象方法概念与用法分析
May 24 #PHP
You might like
php项目打包方法
2008/02/18 PHP
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
Thinkphp模板中截取字符串函数简介
2014/06/17 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
基于Swiper实现移动端页面图片轮播效果
2017/12/28 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
12步教你理解Python装饰器
2016/02/25 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
python中使用while循环的实例
2019/08/05 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
python 线程的五个状态
2020/09/22 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
python3中确保枚举值代码分析
2020/12/02 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
销售文员的岗位职责
2013/11/20 职场文书
服装促销活动方案
2014/02/23 职场文书
秋天的雨教学反思
2014/04/27 职场文书
火灾现场处置方案
2014/05/28 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
导游词之南京中山陵
2019/11/27 职场文书
python程序的组织结构详解
2021/12/06 Python