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删除数组中的特定元素的代码
Jun 28 PHP
php中CI操作多个数据库的代码
Jul 05 PHP
win7下memCache的安装过程(具体操作步骤)
Jun 28 PHP
PHP实现返回JSON和XML的类分享
Jan 28 PHP
PHP的Yii框架的基本使用示例
Aug 21 PHP
java微信开发之上传下载多媒体文件
Jun 24 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 PHP
Laravel学习基础之migrate的使用教程
Oct 11 PHP
PHP生成加减算法方式的验证码实例
Mar 12 PHP
php intval函数用法总结
Apr 14 PHP
thinkphp框架类库扩展操作示例
Nov 26 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学习之正则表达式
2011/04/17 PHP
php设计模式 Prototype (原型模式)代码
2011/06/26 PHP
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
Python中的__slots__示例详解
2017/07/06 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
Python文件操作函数用法实例详解
2019/12/24 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
税务干部鉴定材料
2014/02/11 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
《青山处处埋忠骨》教学反思
2014/04/22 职场文书
《明天,我们毕业》教学反思
2014/04/24 职场文书
标准毕业生自荐信
2014/06/24 职场文书
爱心捐书活动总结
2014/07/05 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
《西门豹》教学反思
2016/02/23 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书
总结几个非常实用的Python库
2021/06/26 Python