Rumah >pembangunan bahagian belakang >tutorial php >分享一个PHP连接sql server的类

分享一个PHP连接sql server的类

WBOY
WBOYasal
2016-07-25 09:11:451065semak imbas

大家平常见的最多的是php连接mysql的类,今天给大家分享一个php连接sql server的类。 感兴趣的朋友可以参考下。

  1. class DB_Handle {

  2. var $ClassName = "DB_Handle";
  3. var $Server;
  4. var $UserName;
  5. var $Password;
  6. var $Database;
  7. var $LinkID = 0;
  8. var $QueryResult = "";
  9. var $LastInsertID = "";
  10. /* private ignore=>ignore the error and continue, halt=>report the error and halt, report=>report the error and continue */
  11. var $Halt_On_Error = "report";
  12. var $Error = "";
  13. var $ErrNo = 0;
  14. /**public
  15. * remark: This is the db_mysql_class's structure
  16. * function: Set the server,username,password,database variable.
  17. */
  18. function DB_Handle($server = "", $username = "", $password = "", $database = "") {
  19. $this->Server = $server;
  20. $this->UserName = $username;
  21. $this->Password = $password;
  22. $this->Database = $database;
  23. }
  24. /**public
  25. * function: Connect database and select database
  26. * success: retun 1
  27. * failed: return 0
  28. */
  29. function connect() {
  30. $this->LinkID = @mssql_pconnect ( $this->Server, $this->UserName, $this->Password );
  31. if (! $this->LinkID) {
  32. $this->halt ( "mssql_pconnect($this->Server,$this->UserName,$this->Password): Failed" );
  33. return 0;
  34. }
  35. if (! @mssql_select_db ( $this->Database )) {
  36. $this->halt ( "mssql_select_db($this->Database) Failed." );
  37. return 0;
  38. }
  39. return 1;
  40. }
  41. /**public
  42. * function: Check the database, if exist then select
  43. * exist: return 1
  44. * not exist: return 0
  45. */
  46. function selectDatabase() {
  47. if (@mssql_select_db ( $this->Database ))
  48. return 1;
  49. else
  50. return 0;
  51. }
  52. /**public
  53. * function: Execute SQL instruction
  54. * success: return SQL Result.
  55. * failed: return 0;
  56. */
  57. function execQuery($sql = "") {
  58. $this->connect();
  59. if ($this->LinkID == 0) {
  60. $this->halt ( "Execute SQL Failed: Have not valid database connect." );
  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 ( "Execute SQL: mssql_query($sql,$this->LinkID) failed." );
  69. return 0;
  70. }
  71. $reg = "#insert into#";
  72. if (preg_match ( $reg, $sql )) {
  73. $sql = "select @@IDENTITY as id";
  74. $res = mssql_query ( $sql, $this->LinkID );
  75. $this->LastInsertID = mssql_result ( $res, 0, id );
  76. }
  77. return $this->QueryResult;
  78. }
  79. /**public
  80. * function: Get the query result's row number
  81. * success: return the row fo the Result
  82. * failed: return 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 ( "Get a row of result Failed: Result $result is invalid." );
  91. return 0;
  92. }
  93. /**public
  94. * function: Get the last insert record's id
  95. * success: return id
  96. * failed: return 0
  97. */
  98. function lastInsertID() {
  99. return $this->LastInsertID;
  100. }
  101. /**public
  102. * function: Get a field's value
  103. * success: return value of the field
  104. * failed: return 0
  105. */
  106. function getField($result = "", $row = 0, $field = 0) {
  107. if ($result != "")
  108. $this->QueryResult = $result;
  109. $fieldvalue = @mssql_result ( $this->QueryResult, $row, $field );
  110. if ($fieldvalue != "")
  111. return $fieldvalue;
  112. $this->halt ( "Get field: mssql_result($this->QueryResult,$row,$field) failed." );
  113. return 0;
  114. //Here should have error handle
  115. }
  116. /**public
  117. * function: Get next record
  118. * success: return a array of the record's value
  119. * failed: return 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("Get the next record Failed: the Result $result is invalid.");
  128. return 0;
  129. }
  130. /**public
  131. * function: Free the Query Result
  132. * success return 1
  133. * failed: return 0
  134. */
  135. function freeResult($result = "") {
  136. if ($result != "")
  137. $this->QueryResult = $result;
  138. return @mssql_free_result ( $this->QueryResult );
  139. }
  140. /**public
  141. * function: Set the Halt_On_Error's state
  142. * success: return 1
  143. * failed: return 0
  144. */
  145. function setHaltOnError($state = "ignore") {
  146. if (! ($state == "ignore" || $state == "report" || $state == "halt")) {
  147. $this->halt ( "Set the Halt_On_Error Fail: There is no state value $state" );
  148. return 0;
  149. }
  150. $this->Halt_On_Error = $state;
  151. return 1;
  152. }
  153. /**public
  154. * function: Get the Halt_On_Error's state
  155. */
  156. function getHaltOnError() {
  157. return $this->Halt_On_Error;
  158. }
  159. /**public
  160. * function: Get the class's name
  161. */
  162. function toString() {
  163. return $this->ClassName;
  164. }
  165. /**private
  166. * function: Error handle
  167. */
  168. function halt($msg) {
  169. $this->Error = @mysql_error ( $this->LinkID );
  170. $this->ErrNo = @mysql_errno ( $this->LinkID );
  171. if ($this->Halt_On_Error == "ignore")
  172. return;
  173. $this->makeMsg ( $msg );
  174. if ($this->Halt_On_Error == "halt")
  175. die ( "Session halted" );
  176. }
  177. /**private
  178. * function: Make error information and print
  179. */
  180. function makeMsg($msg) {
  181. printf ( "Database error: %s\n", $msg );
  182. printf ( "MySQL Error: %s (%s)\n", $this->ErrNo, $this->Error );
  183. }
  184. }
复制代码


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn