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入门学习的几个不错的实例代码
Jul 13 PHP
PHP采集相关教程之一 CURL函数库
Feb 15 PHP
PHP采用XML-RPC构造Web Service实例教程
Jul 16 PHP
php的XML文件解释类应用实例
Sep 22 PHP
php在数组中查找指定值的方法
Mar 17 PHP
php通过strpos查找字符串出现位置的方法
Mar 17 PHP
php提交表单发送邮件的方法
Mar 20 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
Aug 15 PHP
Laravel框架之解决前端显示图片问题
Oct 24 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
PHP 超级全局变量相关总结
Jun 30 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
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
第十一节 重载 [11]
2006/10/09 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
PHP数组操作类实例
2015/07/11 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
Eclipse + Python 的安装与配置流程
2013/03/05 Python
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python操作列表之List.insert()方法的使用
2015/05/20 Python
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
管理科学大学生求职信
2013/11/13 职场文书
优秀士兵个人事迹材料
2014/01/19 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
环保小标语
2014/06/13 职场文书
个人自查自纠材料
2014/10/14 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
大学生自荐书范文
2015/03/05 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL