分享一个PHP连接sql server的类

WBOY
Freigeben: 2016-07-25 09:11:45
Original
1001 Leute haben es durchsucht

大家平常见的最多的是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. }
复制代码


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!