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源代码
Oct 09 PHP
PHP 和 XML: 使用expat函数(三)
Oct 09 PHP
PHP-MySQL教程归纳总结
Jun 07 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
Sep 30 PHP
php导出word格式数据的代码实例
Nov 25 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
深入解析PHP的Yii框架中的event事件机制
Mar 17 PHP
PHP环境搭建的详细步骤
Jun 30 PHP
如何修改yii2.0自带的user表为其它的表
Aug 01 PHP
PHP数据库编程之MySQL优化策略概述
Aug 16 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 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
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
php smarty模版引擎中的缓存应用
2009/12/02 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
php 利用array_slice函数获取随机数组或前几条数据
2015/09/30 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
javascript单例模式的简单实现方法
2015/07/25 Javascript
JS+CSS3模拟溢出滚动效果
2016/08/12 Javascript
JavaScript SHA1加密算法实现详细代码
2016/10/06 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
Python 的 with 语句详解
2014/06/13 Python
用Python编写web API的教程
2015/04/30 Python
python模拟表单提交登录图书馆
2018/04/27 Python
python 自动去除空行的实例
2018/07/24 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
HTML5的新特性(1)
2016/03/03 HTML / CSS
单身旅行者的单身假期:Just You
2018/04/08 全球购物
学生会竞选自荐信
2013/10/12 职场文书
学生党员思想汇报
2013/12/28 职场文书
库房管理员岗位职责
2014/03/09 职场文书
《故乡》教学反思
2014/04/10 职场文书
金秋助学感谢信
2015/01/21 职场文书
煤矿安全保证书
2015/02/27 职场文书
小学班主任工作随笔
2015/08/15 职场文书
2016年主题党日活动总结
2016/04/05 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
DIY胆机必读:各国电子管评价
2022/04/06 无线电
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL