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 相关文章推荐
eaglephp使用微信api接口开发微信框架
Jan 09 PHP
php缓冲 output_buffering和ob_start使用介绍
Jan 30 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
Codeigniter整合Tank Auth权限类库详解
Jun 12 PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 PHP
PHP 实现的将图片转换为TXT
Oct 21 PHP
Yii2中SqlDataProvider用法示例
Sep 22 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 PHP
php实现微信和支付宝支付的示例代码
Aug 11 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中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
php实现计数器方法小结
2015/01/05 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
JavaScript高级程序设计
2006/12/29 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
jQuery动态星级评分效果实现方法
2015/08/06 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
vue 循环加载数据并获取第一条记录的方法
2018/09/26 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
在Python中使用__slots__方法的详细教程
2015/04/28 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
代码实例讲解python3的编码问题
2019/07/08 Python
python unichr函数知识点总结
2020/12/16 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
普师专业个人自荐信范文
2013/11/26 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
用Python实现屏幕截图详解
2022/01/22 Python
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js