设为首页收藏本站订阅更新

无忧脚本

 找回密码
 加入无忧

QQ登录

只需一步,快速开始

搜索
查看: 4634|回复: 1

[原创] 再写一个PHP+MSSQL的操作类

[复制链接]
发表于 2011-11-20 14:50:27 | 显示全部楼层 |阅读模式
项目上需要用到,网上找的不太好用,自己写了一个,希望大家可以用得上
  1. <?php
  2. /*
  3. * PHP操作MSSQL类
  4. * ----------------------------------------------------------------------------
  5. * Created on 2011-11-19 by aklee
  6. *
  7. */

  8.   class msSQL{

  9.           private $db_IP;                  //数据库IP
  10.           private $db_user;                 //数据库用户
  11.           private $db_sa;                     //数据库SA密码
  12.           private $db_dbName;                //数据库名
  13.           private $conn;                          //连接标识 'conn' 及 'pconn''
  14.           private $result;                          //Query命令结果标识
  15.           private $sql;                                //SQL语句
  16.           private $row;                                //返回条目数

  17.           /* 构造函数 */
  18.           public function __construct($db_host,$db_user,$db_sa,$db_dbName,$conn){
  19.              $this->db_host=$db_host;
  20.              $this->db_user=$db_user;
  21.              $this->db_sa = $db_sa;
  22.              $this->db_dbName=$db_dbName;
  23.              $this->conn=$conn;
  24.              $this->connect();
  25.     }

  26.     /* 数据库连接 */
  27.     public function connect()
  28.         {
  29.                 if($this->conn=="pconn"){  //永久链接

  30.                     $this->conn=mssql_pconnect($this->db_host,$this->db_user,$this->db_sa);

  31.                 }else{                            //即时链接

  32.                         $this->conn=mssql_connect($this->db_host,$this->db_user,$this->db_sa);

  33.                 }

  34.                 if(!mssql_select_db($this->db_dbName,$this->conn)){
  35.                                 die("SQL ERROR:".$this->db_dbName);
  36.                 }
  37.         }

  38.         /* 增|删|改|查 */
  39.         public function query($sql)
  40.         {
  41.                 if($sql == ""){

  42.                   die("SQL ERROR:SQL IS NULL!");}
  43.               $this->sql = $sql;

  44.             $result = mssql_query($this->sql,$this->conn);

  45.                 if(!$result){  //调试用,sql语句出错时会自动打印出来

  46.                   die("SQL:".$this->sql);

  47.                 }else{

  48.                         $this->result = $result;

  49.                 }

  50.             return $this->result;

  51.         }

  52.         //创建一个新数据库
  53.         public function create_database($database_name){
  54.                 $database=$database_name;
  55.                 $sqlDatabase = 'create database '.$database;
  56.                 $this->query($sqlDatabase);
  57.         }

  58.         //获取记录集
  59.         public function fetch_array()
  60.         {
  61.                 return mssql_fetch_array($this->result);
  62.         }

  63.         //获取关联数组
  64.         public function fetch_assoc()
  65.         {
  66.                 return mssql_fetch_assoc($this->result);
  67.         }

  68.         //获取数字索引数组
  69.         public function fetch_row()
  70.         {
  71.                 return mssql_fetch_row($this->result);
  72.         }

  73.           //获取对象数组 调试:‘$row->content’
  74.           public function fetch_Object()
  75.         {
  76.                 return mssql_fetch_object($this->result);
  77.         }

  78.         //指向确定的一条数据记录
  79.         public function db_data_seek($id){
  80.                 if($id>0){
  81.                         $id=$id-1;
  82.                 }
  83.                 if(!@mssql_data_seek($this->result,$id)){
  84.                         die('SQL ERROR:Specified data is null!');
  85.                 }
  86.                 return $this->result;
  87.         }

  88.         //根据查询结果集条目
  89.         public function db_num_rows(){
  90.                  if($this->result==null){
  91.                                  die('SQL ERROR:Being empty, nothing!');
  92.                  }else{
  93.                          return  mssql_num_rows($this->result);
  94.                  }
  95.         }

  96.         //返回最后一次写入查询影响的记录数
  97.         public function db_affected_rows(){
  98.                  return mssql_rows_affected();
  99.         }

  100.         //释放结果集
  101.         public function free(){
  102.                 @mssql_free_result($this->result);
  103.         }

  104.         //数据库选择
  105.         public function select_db($db_database){
  106.                 return mssql_select_db($db_database);
  107.         }

  108.         //获取结果的字段数
  109.         public function num_fields($table_name){
  110.                 $this->query("select * from $table_name");
  111.                 echo $total = mssql_num_fields($this->result);
  112.                 echo "<pre>";
  113.                 for ($i=0; $i<$total; $i++){
  114.                         print_r(mssql_fetch_field($this->result,$i) );
  115.                 }
  116.                 echo "</pre>";
  117.                 echo "<br />";
  118.         }

  119.         //初始化存储过程
  120.         public function init_pro($proNme){
  121.                 return mssql_init($proNme,$this->conn);
  122.         }


  123.         //析构函数,关闭数据库,垃圾回收
  124.         public function __destruct()
  125.         {
  126.                 if(!empty($this->result)){
  127.                         $this->free();
  128.                 }
  129.                 mssql_close($this->conn);
  130.         }





  131.   }

  132.   
  133. ?>
复制代码
再附上示例

  1. <?php
  2. /*
  3. * 示例文件
  4. * ----------------------------------------------------------------------------
  5. * Created on 2011-11-19 by aklee
  6. *
  7. */

  8.    require_once("mssql.php");

  9.   $db=new msSQL("IP或主机名","sa","密码","数据库名","conn");

  10.    $rs=$db->query("select *  from 表名");

  11.    //返回结果集条目
  12.    echo '记录数:'.$amount =$db->db_num_rows($rs);
  13.    echo '<hr /><br />';

  14.    //获取索引数组
  15.    echo '结果集索引数组<br />';
  16.    while($row = $db->fetch_array($rs)){
  17.            echo $row[id];
  18.            echo '<br />';
  19.    }
  20.    echo '<hr /><br />';

  21.    //结果字段数
  22.    echo '获取字段数并打印<br />';
  23.    echo $db->num_fields("表名");
  24.    echo '<hr /><br />';
  25. ?>
复制代码




发表于 2012-3-5 12:17:59 | 显示全部楼层
非常感谢  我要用 啊
您需要登录后才可以回帖 登录 | 加入无忧

本版积分规则

小黑屋|手机版|Archiver|无忧脚本 ( 苏ICP备05080427号 )|值班电话:027-62300445   鄂公网安备 42011102000433号

GMT+8, 2017-11-18 06:38 , Processed in 0.091349 second(s), 9 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表