大家平常见的最多的是php连接mysql的类,今天给大家分享一个php连接sql server的类。
感兴趣的朋友可以参考下。 class DB_Handle { - var $ClassName = "DB_Handle";
- var $Server;
- var $UserName;
- var $Password;
- var $Database;
- var $LinkID = 0;
- var $QueryResult = "";
- var $LastInsertID = "";
- /* private ignore=>ignore the error and continue, halt=>report the error and halt, report=>report the error and continue */
- var $Halt_On_Error = "report";
- var $Error = "";
- var $ErrNo = 0;
- /**public
- * remark: This is the db_mysql_class's structure
- * function: Set the server,username,password,database variable.
- */
- function DB_Handle($server = "", $username = "", $password = "", $database = "") {
- $this->Server = $server;
- $this->UserName = $username;
- $this->Password = $password;
- $this->Database = $database;
- }
- /**public
- * function: Connect database and select database
- * success: retun 1
- * failed: return 0
- */
- function connect() {
- $this->LinkID = @mssql_pconnect ( $this->Server, $this->UserName, $this->Password );
- if (! $this->LinkID) {
- $this->halt ( "mssql_pconnect($this->Server,$this->UserName,$this->Password): Failed" );
- return 0;
- }
- if (! @mssql_select_db ( $this->Database )) {
- $this->halt ( "mssql_select_db($this->Database) Failed." );
- return 0;
- }
- return 1;
- }
- /**public
- * function: Check the database, if exist then select
- * exist: return 1
- * not exist: return 0
- */
- function selectDatabase() {
- if (@mssql_select_db ( $this->Database ))
- return 1;
- else
- return 0;
- }
- /**public
- * function: Execute SQL instruction
- * success: return SQL Result.
- * failed: return 0;
- */
- function execQuery($sql = "") {
- $this->connect();
- if ($this->LinkID == 0) {
- $this->halt ( "Execute SQL Failed: Have not valid database connect." );
- return 0;
- }
- ob_start ();
- $this->QueryResult = mssql_query ( $sql, $this->LinkID );
- $error = ob_get_contents ();
- ob_end_clean ();
- if ($error) {
- $this->halt ( "Execute SQL: mssql_query($sql,$this->LinkID) failed." );
- return 0;
- }
- $reg = "#insert into#";
- if (preg_match ( $reg, $sql )) {
- $sql = "select @@IDENTITY as id";
- $res = mssql_query ( $sql, $this->LinkID );
- $this->LastInsertID = mssql_result ( $res, 0, id );
- }
- return $this->QueryResult;
- }
-
- /**public
- * function: Get the query result's row number
- * success: return the row fo the Result
- * failed: return 0
- */
- function getTotalRowNum($result = "") {
- if ($result != "")
- $this->QueryResult = $result;
- $row = @mssql_num_rows ( $this->QueryResult );
- if ($row >= 0)
- return $row;
- $this->halt ( "Get a row of result Failed: Result $result is invalid." );
- return 0;
- }
-
- /**public
- * function: Get the last insert record's id
- * success: return id
- * failed: return 0
- */
- function lastInsertID() {
- return $this->LastInsertID;
- }
-
- /**public
- * function: Get a field's value
- * success: return value of the field
- * failed: return 0
- */
- function getField($result = "", $row = 0, $field = 0) {
- if ($result != "")
- $this->QueryResult = $result;
- $fieldvalue = @mssql_result ( $this->QueryResult, $row, $field );
- if ($fieldvalue != "")
- return $fieldvalue;
- $this->halt ( "Get field: mssql_result($this->QueryResult,$row,$field) failed." );
- return 0;
-
- //Here should have error handle
- }
-
- /**public
- * function: Get next record
- * success: return a array of the record's value
- * failed: return 0
- */
- function nextRecord($result = "") {
- if ($result != "")
- $this->QueryResult = $result;
- $record = @mssql_fetch_array ( $this->QueryResult );
- if (is_array ( $record ))
- return $record;
- //$this->halt("Get the next record Failed: the Result $result is invalid.");
- return 0;
- }
-
- /**public
- * function: Free the Query Result
- * success return 1
- * failed: return 0
- */
- function freeResult($result = "") {
- if ($result != "")
- $this->QueryResult = $result;
- return @mssql_free_result ( $this->QueryResult );
- }
-
- /**public
- * function: Set the Halt_On_Error's state
- * success: return 1
- * failed: return 0
- */
- function setHaltOnError($state = "ignore") {
- if (! ($state == "ignore" || $state == "report" || $state == "halt")) {
- $this->halt ( "Set the Halt_On_Error Fail: There is no state value $state" );
- return 0;
- }
- $this->Halt_On_Error = $state;
- return 1;
- }
-
- /**public
- * function: Get the Halt_On_Error's state
- */
- function getHaltOnError() {
- return $this->Halt_On_Error;
- }
-
- /**public
- * function: Get the class's name
- */
- function toString() {
- return $this->ClassName;
- }
-
- /**private
- * function: Error handle
- */
- function halt($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 ( "Session halted" );
- }
-
- /**private
- * function: Make error information and print
- */
- function makeMsg($msg) {
- printf ( "Database error: %s\n", $msg );
- printf ( "MySQL Error: %s (%s)\n", $this->ErrNo, $this->Error );
- }
- }
|