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 中dirname(_file_)讲解
Mar 18 PHP
php Http_Template_IT类库进行模板替换
Mar 19 PHP
PHP中全面阻止SQL注入式攻击分析小结
Jan 30 PHP
取得单条网站评论以数组形式进行输出
Jul 28 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
phpStudy访问速度慢和启动失败的解决办法
Nov 19 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
Nov 22 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
laravel框架关于搜索功能的实现
Mar 15 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实现统计邮件大小的方法
2013/08/06 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
Yii2语言国际化的配置教程
2018/08/19 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
JavaScript 小型打飞机游戏实现原理说明
2010/10/28 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
使用PDB简单调试Python程序简明指南
2015/04/25 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
学生就业推荐信
2013/11/13 职场文书
会计毕业自我鉴定
2014/02/05 职场文书
大学自主招生自荐信范文
2014/02/26 职场文书
活动总结报告范文
2014/05/04 职场文书
医院搬迁方案
2014/06/14 职场文书
个人收入证明模板
2014/09/18 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
工作态度不好检讨书
2015/05/06 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书