最も一般的に見られるクラスは、MySQL に接続する PHP クラスです。今日は、SQL サーバーに接続する PHP クラスを紹介します。
興味のある友達は参考にしてみてください。
-
-
class DB_Handle { - 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 = "レポート";
- var $Error = "";
- var $ErrNo = 0;
- /**public
- * 注釈: これは db_mysql_class の構造です
- * 関数: サーバー、ユーザー名、パスワード、データベース変数を設定します。*/
- function DB_Handle($server = "", $username = "", $password = "", $database = "") {
- $this->サーバー = $server;
- $this->ユーザー名 = $username;
- $this->パスワード = $password;
- $this->Database = $database;
- }
- /**public
- * 関数: データベースに接続し、データベースを選択します
- * 成功: 1 を返します
- * 失敗: 0 を返します
- */
- function connect() {
- $this->LinkID = @mssql_pconnect ( $this->Server, $this-> ;ユーザー名, $this->パスワード );
- if (! $this->リンクID) {
- $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
- * 関数: データベースをチェックし、存在する場合は select
- * 存在する: 1 を返す
- * 存在しない: 0 を返す
- */
- function selectDatabase() {
- if (@mssql_select_db ( $this->Database ))
- return 1;
- else
- return 0;
- }
- /**public
- * 関数: 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 = "ID として @@IDENTITY を選択";
- $res = mssql_query ( $sql, $this->LinkID );
- $this-> ;LastInsertID = mssql_result ( $res, 0, id );
- }
- return $this->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- >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 ( "フィールドの取得: 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 が無効です。");
- 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 (! ($state == "ignore" || $state = = "レポート" || $state == "停止")) {
- $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 ( "データベース エラー: %sn", $msg );
- printf ( "MySQL エラー: %s (%s)n", $this->ErrNo, $this->Error );
- }
- } p>
-
复制發
|