> 백엔드 개발 > PHP 튜토리얼 > PHP 클래스를 공유하여 SQL Server에 연결

PHP 클래스를 공유하여 SQL Server에 연결

WBOY
풀어 주다: 2016-07-25 09:11:45
원래의
1063명이 탐색했습니다.

가장 흔한 것은 php와 mysql을 연결하는 클래스입니다. 오늘은 php와 sql 서버를 연결하는 클래스를 공유하겠습니다. 관심있는 친구들은 그것을 참고할 수 있습니다.

  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. /* privateignore=>오류를 무시하고 계속, quit=>오류를 보고하고 중지, 보고=>오류를 보고하고 계속 */
  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->Database = $database;
  23. }
  24. /**public
  25. * 함수: 데이터베이스 연결 및 데이터베이스 선택
  26. * 성공: 반환 1
  27. * 실패: 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): 실패함" );
  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 (@mssql_select_db ( $this->Database ))
  48. return 1;
  49. else
  50. return 0;
  51. }
  52. /**public
  53. * 함수: 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 = "ID로 @@IDENTITY 선택";
  74. $res = mssql_query ( $sql, $ this->LinkID );
  75. $this->LastInsertID = mssql_result ( $res, 0, id );
  76. }
  77. return $this->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- >LastInsertID;
  100. }
  101. /**public
  102. * 함수: 필드 값 가져오기
  103. * 성공: 필드 값 반환
  104. * 실패: 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 ( "필드 가져오기: 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가 유효하지 않습니다.");
  128. return 0;
  129. }
  130. /**public
  131. * 함수: 쿼리 결과 해제
  132. * 성공 반환 1
  133. * 실패: 0 반환
  134. */
  135. function freeResult($result = " ") {
  136. if ($result != "")
  137. $this->QueryResult = $result;
  138. return @mssql_free_result ( $this->QueryResult );
  139. }
  140. /**public
  141. * 함수: Halt_On_Error 상태 설정
  142. * 성공: 1을 반환
  143. * 실패: 0을 반환
  144. */
  145. function setHaltOnError($state = "ignore") {
  146. if (! ($state == "ignore" || $state == "report" || $state == "halt")) {
  147. $this->halt ( "Halt_On_Error 설정 실패: 상태 값 $state가 없습니다." );
  148. return 0;
  149. }
  150. $ this->Halt_On_Error = $state;
  151. return 1;
  152. }
  153. /**public
  154. * 함수: Halt_On_Error 상태를 가져옵니다
  155. */
  156. function getHaltOnError() {
  157. return $this-> Halt_On_Error;
  158. }
  159. /**public
  160. * 함수: 클래스 이름 가져오기
  161. */
  162. function toString() {
  163. return $this->ClassName;
  164. }
  165. / **private
  166. * 함수: 오류 핸들
  167. */
  168. function quit($msg) {
  169. $this->Error = @mysql_error ( $this->LinkID );
  170. $this->ErrNo = @mysql_errno ( $this->LinkID );
  171. if ($this->Halt_On_Error == "무시")
  172. return;
  173. $this->makeMsg ( $msg );
  174. if ( $this->Halt_On_Error == "halt")
  175. die ( "세션이 중단되었습니다" );
  176. }
  177. /**private
  178. * 기능: 오류정보를 작성하고 인쇄합니다
  179. */
  180. function makeMsg($msg) {
  181. printf ( "데이터베이스 오류: %sn", $msg );
  182. printf ( "MySQL 오류: %s (%s)n", $this->ErrNo, $this->Error ) ;
  183. }
  184. }

复제대码


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿