大家平常見的最多的是php連接mysql的類,今天跟大家分享一個php連接sql server的類。
有興趣的朋友可以參考下。
-
-
class DB_Handle {
- var $ClassName = "DB_Handle";
- var $🎜> var $ClassName = "DB_Handle";
- var $Server; > var $UserName;
- var $Password;
- var $Database;
- var $LinkID = 0;
- var $QueryResult = "";
- var $LastInsertID = "";
- /* privateignore=>忽略錯誤並繼續,halt=>報告錯誤並暫停,report=>報告錯誤並繼續*/
- var $Halt_On_Error = "report";
- var $Error = "";
- var $ErrNo = 0;
- /**public
- * 備註:這是db_mysql_class的結構
- * 功能:設定伺服器、使用者名稱、密碼、資料庫變數。
- */
- function DB_Handle($server = "", $username = "", $password = " ", $database = "") {
- $this->Server = $server;
- $this->UserName = $username;
- $this->Password = $password;
- $this->DataName = $database;
- }
- /**public
- * 功能:連接資料庫並選擇資料庫
- * 成功:回傳 1
- * 失敗:回傳 0
- */
- function connect() {
- $this->LinkID = @mssql_pconnect ( $this- >伺服器, $this->使用者名稱, $this->密碼);
- if (! $this->LinkID) {
- $this->halt ( "mssql_pconnect($this-> ;伺服器,$this->使用者名稱,$this->密碼): 失敗" );
- return 0;
- }
- if (! @mssql_select_db ( $this->Database )) {
- $this->halt ( "mssql_select_db($this->Database) 失敗。 " );
- return 0;
- }
- return 1;
- }
- /**public
- * 功能:檢查資料庫,如果存在則選擇
- * 存在:回傳1
- * 不存在:回傳0
- */
- function selectDatabase() {
- if (if ( $this->Database ))
- return 1;
- else
- return 0;
- }
- /**public
- * function: 執行SQL指令
- * 成功: 回傳SQL結果。
- * 失敗: 回傳0;
- */
- function execQuery($sql = "") {
- $this->connect();
- if ($this->LinkID == 0) {
- $this->halt ( "執行SQL 失敗:沒有有效的資料庫連線。 " );
- return 0;
- }
- ob_start ();
- $this->QueryResult = mssql_query ( $sql, $this->LinkID );
- $error = ob_get_contents () ;
- ob_end_clean ();
- if ( $error) {
- $this->halt ("執行SQL: mssql_query($sql,$this->LinkID) 失敗。");
- return 0;
- }
- $reg = "#insert into#";
- if (preg_match ( $reg, $sql )) {
- $sql = "選擇@@IDENTITY 作為id";
- $res = mssql_query ( $sql, $ this->LinkID );
- $this->LastInsertID = mssql_result ( $res, 0, id );
- }
- return $this->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult->QueryResult;
- }
-
- /**public
- * 功能:取得查詢結果的行號
- * 成功:傳回結果所在行
- * 失敗:回傳0
- */
- function getTotalRowNum($result = "") {
- if ($result != "")
- $this-> QueryResult = $result;
- $row = @mssql_num_rows ( $this->QueryResult );
- if ($row >= 0)
- return $row;
- $this->halt ( "取得一行結果失敗:結果$result 無效。 " );
- return 0;
- }
-
- /**public
- * 功能:取得最後一筆插入記錄的id
- * 成功:回傳id
- * 失敗:回傳0
- */
- function lastInsertID() {
- return $this $this. - >LastInsertID;
- }
-
- /**public
- * function: 取得欄位值
- * 成功: 傳回欄位值
- * 失敗: 回傳0
- */
- function getField($result = "", $row = 0, $field = 0) {
- if (if ( $result != "")
- $this->QueryResult = $result;
- $fieldvalue = @mssql_result ( $this->QueryResult, $row, $field );
- if ($fieldvalue != "")
- return $fieldvalue;
- $this->halt ( "取得欄位:mssql_result($this->QueryResult,$row,$field) 失敗。 " );
- return 0;
-
- //這裡應該要有錯誤句柄
- }
-
- /**public
- * 函數:取得下一筆記錄
- * 成功:傳回記錄值的陣列
- * 失敗:回傳0
- */
- function nextRecord($result = "") {
- if ($result != "")
- $this->QueryResult = $ result ;
- $record = @mssql_fetch_array ( $this->QueryResult );
- if (is_array ( $record ))
- return $record;
- //$this->halt("取得下一則記錄失敗:結果$result 無效。 > if ($result != "")
- $this->QueryResult = $result;
- return @mssql_free_result ( $this->QueryResult );
- }
-
- /**public
- * 功能:釋放查詢結果
- * 成功回傳1
- * 失敗:回傳0
- */
- function setHaltOnError($state = "ignore") {
- if (!($state == "ignore" || $state == "report" || $state == "halt")) {
- $this->halt ( "設定Halt_On_Error 失敗:沒有狀態值$state" );
- return 0;
- }
- $ this->Halt_On_Error = $🎜> }
- $ this->Halt_On_Error = $ state;
- return 1;
- }
-
- /**public
- * 功能:設定 Halt_On_Error 的狀態
- * 成功:回傳 1
- * 失敗:回傳 0
- */
- function getHaltOnError() {
- return $this-> Halt_On_EaltOnError() {
- return $this-> Halt_On_Error; } >
- /**public
- * 功能:取得 Halt_On_Error 的狀態
- */
- function toString() {
- return $this->ClassName;
- }
-
- / **public
- * 功能:取得類別名稱
- */
- functionhalt ($msg) {
- $this->Error = @mysql_error ( $this->LinkID );
- $this->ErrNo = @mysql_errno ( $this->LinkID );
- if ( $this ->Halt_On_Error == "ignore")
- return;
- $this->makeMsg ( $msg );
- if ( $this->Halt_On_Error == "halt")
- die "會話停止" );
- }
-
- /**private
- * 函數:錯誤句柄
- */
- function makeMsg($msg) {
- printf ("資料庫錯誤: %sn", $msg ) ;
- printf ("MySQL 錯誤: %s (%s)n", $this->ErrNo, $this->Error ) ;
- }
- }
-
-
-
- 複製程式碼
-
-
-
-
-
|