PHP封裝的MSSql操作類完整執行個體_php技巧

來源:互聯網
上載者:User

本文執行個體講述了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基於pdo操作資料庫技巧總結》、《PHP+MongoDB資料庫操作技巧大全》、《php物件導向程式設計入門教程》、《php字串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》

希望本文所述對大家PHP程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.