ホームページ  >  記事  >  php教程  >  Db_mssql_class

Db_mssql_class

WBOY
WBOYオリジナル
2016-06-21 09:06:05818ブラウズ

详细介绍:
   由于工作的原因,需要对SQL SERVER数据库进行操作,根据以前使用的MySQL数据库操作类改写成现在这个对SQL SERVER进行操作的PHP类,可以执行连接数据库,执行SQL语句,查询数据,获得最后一次插入操作的ID号等功能!

/****************************************************************************
db_mssql_class.php - description
-------------------
begin : 2002 4 2

$Id: db_mssql_class.php,v 1.1 2002/04/03 09:25:33 Simon.Qiu Exp $
/****************************************************************************/

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
* 関数: SQL 命令を実行します
* 成功: SQL 結果を返します。
* 失敗: 0 を返します。
 */
function execQuery($sql=""){
if($this->LinkID == 0){
$this->halt("SQL の実行に失敗しました: Hava ではありません有効なデータベース接続。");
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 = "ID として @@IDENTITY を選択";
$res = mssql_query($sql,$this->LinkID);
$this->LastInsertID = mssql_result($res,0,id);
}
return $this->QueryResult;
}


/**public
* 関数: クエリ結果の行番号を取得します
* 成功: Result の行を返します
* 失敗: 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->LastInsertID;
}


/**public
* 関数: フィールドの値を取得する
* 成功: フィールドの値を返す
* 失敗: 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;

//ここにはエラー ハンドルがあるはずです
}


/* *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 が無効です。");
return 0;
}


/**public
* 関数: クエリ結果を解放します
* 成功した場合は 1 を返します
* 失敗した場合: 0 を返す
 */
function freeResult($result=""){
if($result != "") $this->QueryResult = $result;
return @mssql_free_result($this-> QueryResult);
}


/**public
* 関数: Halt_On_Error の状態を設定します
* 成功: 1 を返します
* 失敗: 0 を返します
 */
function setHaltOnError($state="ignore"){
if(!($st​​ate == "ignore" || $state == "レポート" || $state == "halt")){
$this->halt("Halt_On_Error の設定失敗: 状態値 $state がありません");
return 0;     
}
$this->Halt_On_Error = $state;
return 1;
}


/**public
* 関数: Halt_On_Error の状態を取得する
 */
function getHaltOnError(){
return $this->Halt_On_Error;
}


/**public
* 関数: クラス名を取得します
 */
function toString(){
return $this->ClassName;
}


/**private
* 関数: エラーハンドル
 */
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 == "停止") die("セッションが停止しました");
}


 /**private
* 関数: エラー情報の作成と印刷
 */
function makeMsg($msg){
printf("データベース エラー:gt; %s
n", $msg);
printf("< b>MySQL エラー: %s (%s)
n",$this->ErrNo,$this->Error);
}
}

?>



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。