首頁 > 後端開發 > php教程 > 分享一個PHP連接sql server的類

分享一個PHP連接sql server的類

WBOY
發布: 2016-07-25 09:11:45
原創
1059 人瀏覽過

大家平常見的最多的是php連接mysql的類,今天跟大家分享一個php連接sql server的類。 有興趣的朋友可以參考下。

  1. class DB_Handle {

  2. var $ClassName = "DB_Handle";
  3. var $🎜> var $ClassName = "DB_Handle";
  4. var $Server; > var $UserName;
  5. var $Password;
  6. var $Database;
  7. var $LinkID = 0;
  8. var $QueryResult = "";
  9. var $LastInsertID = "";
  10. /* privateignore=>忽略錯誤並繼續,halt=>報告錯誤並暫停,report=>報告錯誤並繼續*/
  11. var $Halt_On_Error = "report";
  12. var $Error = "";
  13. var $ErrNo = 0;
  14. /**public
  15. * 備註:這是db_mysql_class的結構
  16. * 功能:設定伺服器、使用者名稱、密碼、資料庫變數。
  17. */
  18. function DB_Handle($server = "", $username = "", $password = " ", $database = "") {
  19. $this->Server = $server;
  20. $this->UserName = $username;
  21. $this->Password = $password;
  22. $this->DataName = $database;
  23. }
  24. /**public
  25. * 功能:連接資料庫並選擇資料庫
  26. * 成功:回傳 1
  27. * 失敗:回傳 0
  28. */
  29. function connect() {
  30. $this->LinkID = @mssql_pconnect ( $this- >伺服器, $this->使用者名稱, $this->密碼);
  31. if (! $this->LinkID) {
  32. $this->halt ( "mssql_pconnect($this-> ;伺服器,$this->使用者名稱,$this->密碼): 失敗" );
  33. return 0;
  34. }
  35. if (! @mssql_select_db ( $this->Database )) {
  36. $this->halt ( "mssql_select_db($this->Database) 失敗。 " );
  37. return 0;
  38. }
  39. return 1;
  40. }
  41. /**public
  42. * 功能:檢查資料庫,如果存在則選擇
  43. * 存在:回傳1
  44. * 不存在:回傳0
  45. */
  46. function selectDatabase() {
  47. if (if ( $this->Database ))
  48. return 1;
  49. else
  50. return 0;
  51. }
  52. /**public
  53. * function: 執行SQL指令
  54. * 成功: 回傳SQL結果。
  55. * 失敗: 回傳0;
  56. */
  57. function execQuery($sql = "") {
  58. $this->connect();
  59. if ($this->LinkID == 0) {
  60. $this->halt ( "執行SQL 失敗:沒有有效的資料庫連線。 " );
  61. return 0;
  62. }
  63. ob_start ();
  64. $this->QueryResult = mssql_query ( $sql, $this->LinkID );
  65. $error = ob_get_contents () ;
  66. ob_end_clean ();
  67. if ( $error) {
  68. $this->halt ("執行SQL: mssql_query($sql,$this->LinkID) 失敗。");
  69. return 0;
  70. }
  71. $reg = "#insert into#";
  72. if (preg_match ( $reg, $sql )) {
  73. $sql = "選擇@@IDENTITY 作為id";
  74. $res = mssql_query ( $sql, $ this->LinkID );
  75. $this->LastInsertID = mssql_result ( $res, 0, id );
  76. }
  77. return $this->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult;
  78. }
  79. /**public
  80. * 功能:取得查詢結果的行號
  81. * 成功:傳回結果所在行
  82. * 失敗:回傳0
  83. */
  84. function getTotalRowNum($result = "") {
  85. if ($result != "")
  86. $this-> QueryResult = $result;
  87. $row = @mssql_num_rows ( $this->QueryResult );
  88. if ($row >= 0)
  89. return $row;
  90. $this->halt ( "取得一行結果失敗:結果$result 無效。 " );
  91. return 0;
  92. }
  93. /**public
  94. * 功能:取得最後一筆插入記錄的id
  95. * 成功:回傳id
  96. * 失敗:回傳0
  97. */
  98. function lastInsertID() {
  99. return $this $this. - >LastInsertID;
  100. }
  101. /**public
  102. * function: 取得欄位值
  103. * 成功: 傳回欄位值
  104. * 失敗: 回傳0
  105. */
  106. function getField($result = "", $row = 0, $field = 0) {
  107. if (if ( $result != "")
  108. $this->QueryResult = $result;
  109. $fieldvalue = @mssql_result ( $this->QueryResult, $row, $field );
  110. if ($fieldvalue != "")
  111. return $fieldvalue;
  112. $this->halt ( "取得欄位:mssql_result($this->QueryResult,$row,$field) 失敗。 " );
  113. return 0;
  114. //這裡應該要有錯誤句柄
  115. }
  116. /**public
  117. * 函數:取得下一筆記錄
  118. * 成功:傳回記錄值的陣列
  119. * 失敗:回傳0
  120. */
  121. function nextRecord($result = "") {
  122. if ($result != "")
  123. $this->QueryResult = $ result ;
  124. $record = @mssql_fetch_array ( $this->QueryResult );
  125. if (is_array ( $record ))
  126. return $record;
  127. //$this->halt("取得下一則記錄失敗:結果$result 無效。 > if ($result != "")
  128. $this->QueryResult = $result;
  129. return @mssql_free_result ( $this->QueryResult );
  130. }
  131. /**public
  132. * 功能:釋放查詢結果
  133. * 成功回傳1
  134. * 失敗:回傳0
  135. */
  136. function setHaltOnError($state = "ignore") {
  137. if (!($st​​ate == "ignore" || $state == "report" || $state == "halt")) {
  138. $this->halt ( "設定Halt_On_Error 失敗:沒有狀態值$state" );
  139. return 0;
  140. }
  141. $ this->Halt_On_Error = $🎜> }
  142. $ this->Halt_On_Error = $ state;
  143. return 1;
  144. }
  145. /**public
  146. * 功能:設定 Halt_On_Error 的狀態
  147. * 成功:回傳 1
  148. * 失敗:回傳 0
  149. */
  150. function getHaltOnError() {
  151. return $this-> Halt_On_EaltOnError() {
  152. return $this-> Halt_On_Error; } >
  153. /**public
  154. * 功能:取得 Halt_On_Error 的狀態
  155. */
  156. function toString() {
  157. return $this->ClassName;
  158. }
  159. / **public
  160. * 功能:取得類別名稱
  161. */
  162. functionhalt ($msg) {
  163. $this->Error = @mysql_error ( $this->LinkID );
  164. $this->ErrNo = @mysql_errno ( $this->LinkID );
  165. if ( $this ->Halt_On_Error == "ignore")
  166. return;
  167. $this->makeMsg ( $msg );
  168. if ( $this->Halt_On_Error == "halt")
  169. die "會話停止" );
  170. }
  171. /**private
  172. * 函數:錯誤句柄
  173. */
  174. function makeMsg($msg) {
  175. printf ("資料庫錯誤: %sn", $msg ) ;
  176. printf ("MySQL 錯誤: %s (%s)n", $this->ErrNo, $this->Error ) ;
  177. }
  178. }
  179. 複製程式碼
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板