ホームページ バックエンド開発 PHPチュートリアル PHP でデータベース操作をカプセル化する方法

PHP でデータベース操作をカプセル化する方法

Aug 08, 2016 am 09:33 AM
case gt nbsp test

php でのデータベース操作のカプセル化

動的 Web デザインの多くの側面にはデータベース操作が含まれますが、必要に応じて他のバックエンド データベースに切り替えるには、大量のプログラムの変更が必要になる場合があります。これは面倒で時間がかかり、エラーが発生しやすい作業です。実際、PHP のクラスを使用してデータベース操作をカプセル化できるため、作成されたプログラムは非常に小さな変更でバックグラウンド データベースへの変更を完了できます。
これを dbfz.inc にカプセル化し、そのデザインは次のようになります:

var $dbHost; //データベースが配置されているホストのドメイン名
var $dbUsername //データベースのユーザー名
var $dbPassWord //ユーザーのパスワード
//ホスト、ユーザー名、パスワード関数を設定します
関数 setParameter($host,$username,$password){
$this->dbUsername=$ユーザー名
$this->dbHost=$host; $this->dbPassword=$パスワード

} //データベース関数に参加します
関数 dbConnect(){
スイッチ($this->dbID)
{
ケース 1; return @mysql_connect($this->dbHost,$this->dbUsername,$this->dbPassword); ケース 2; //SQL Server をサポートする関数を使用します
ケース 3; //ODBCをサポートする関数を使用する
}
}
//ライブラリ関数を閉じる
関数 dbClos​​e($dataHandle){
スイッチ($this->dbID)
{
ケース 1; mysql_close($dataHandle); ケース 2; //SQL Server をサポートする関数を使用します
ケース 3; //ODBCをサポートする関数を使用する
}
}

//SQL文関数を実行
関数 dbQuery($dbName,$sql,$dbHandle){
スイッチ($this->dbID)
{
ケース 1; @mysql_db_query($dbName,$sql,$dbHandle) を返します
ケース 2; //SQL Server をサポートする関数を使用します
ケース 3; //ODBCをサポートする関数を使用する
}
}

//SQL戻り値のカレントレコード関数を取得します
関数 dbFetchrow($dataHandle,$offset=-1){
スイッチ($this->dbID)
{
ケース 1; @mysql_data_seek($dataHandle,$offset); @mysql_fetch_row($dataHandle) を返します
ケース 2; //SQL Server をサポートする関数を使用します
ケース 3; //ODBCをサポートする関数を使用する
}
}

//取得したレコード番号関数を返す
関数 dbNumrows($dataHandle){
スイッチ($this->dbID)
{
ケース 1; @mysql_num_rows($dataHandle) を返します
ケース 2; //SQL Server をサポートする関数を使用します
ケース 3; //ODBCをサポートする関数を使用する
}
}

//列数を取得する関数を返す
関数 dbNumcols($dataHandle){
スイッチ($this->dbID)
{
ケース 1; @mysql_num_fields($dataHandle) を返します
ケース 2; //SQL Server をサポートする関数を使用します
ケース 3; //ODBCをサポートする関数を使用する
}
}
}

使用説明書は次のとおりです:

dbInterface クラスを使用して、プログラム $test=new dbInterface; にオブジェクトを生成します。
パラメータを設定します
テスト->$dbユーザー名 ;ユーザー名
テスト->$dbパスワード
テスト->$dbHost;ホスト
void setParameter(文字列ホスト、文字列ユーザー名、文字列パスワード);
データベース接続: dbhandle test->dbConnect();
戻り値: fasle、データベース接続エラー
>0、データベース接続ハンドル

データベースを閉じる: void test->dbClos​​e(dbhandle);
テーブル操作: int test->dbQuery(string データベース名, string sql, dbhandle); SQL ステートメントを実行します

戻り値: false、SQL実行エラー
>0、SQL は正しく実行され、SQL 戻り値を指します。

データ操作: int test->dbFetchrow(dataHandle, int offset); 実行が成功すると、ポインターは次のレコードに移動します。 int test->dbNumrows(dataHandle); SQL(主にSELECT文)実行後に取得したレコード数を取得します
int test->dbNumcols(dataHandle); SQL実行(主にSELECT文)後に取得したレコードフィールド数を取得します

ここで例を挙げて説明します:

データベースは MQSQL を使用します。ホスト名は「localhost」、ユーザー名は「root」、パスワードは「」です。
mysql には testdb データベースと table1 があり、このテーブルには name と pay の 2 つのフィールドが含まれています。
-----
<ヘッド> テスト <ボディ>

require("testdb.inc"); //dbInterface クラスをロードします
$test = new dbInterface;//クラス dbInterface を使用してオブジェクトを生成します
$test->setParameter("localhost","root","") //データベースパラメータを設定します
$db = $test->dbConnect();//データベースに接続します
$Query = "SELECT name,pay FROM table ";// SQL ステートメントを設定します
$temp_result = $test->dbQuery("testdb",$Query,$db); //データマスターデータベース操作を実行します
エコー "
"; $ls_num = $test->dbNumrows($temp_result) //クエリ結果のレコード数を取得します
$ls_num をエコーし​​ます。 エコー "
"; if (ls_num>0 )
{
$ls_col = $test->dbNumcols($db) //テーブル内の列数を取得します
; エコー $ls_col
エコー "
"; $cate_result=$test->dbFetchrow($temp_result,0);//レコード番号の最初の行を取得します
$hcid=$cate_result[0];//name の値を取得します
$hcate=$cate_result[1];//支払いの値を取得します
エコー $hcid
エコー「
」; $hcate をエコーし​​ます。 }

?>

<アドレス> これは、データベースの操作を完了するための単純なアプリケーションのカプセル化クラスです。他のデータベースを操作したい場合は、dbInterface クラスの dbID 変数を変更するだけです。


上記では、PHP でデータベース操作をカプセル化する方法をさまざまな側面を含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。


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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Huawei Watch GT 5スマートウォッチが新機能を追加してアップデートされる Huawei Watch GT 5スマートウォッチが新機能を追加してアップデートされる Oct 03, 2024 am 06:25 AM

ファーウェイは、Watch GT 5 および Watch GT 5 Pro スマートウォッチ用のソフトウェア バージョン 5.0.0.100(C00M01) をグローバルに展開しています。これら 2 つのスマートウォッチは最近ヨーロッパで発売され、標準モデルが同社の最も安価なモデルとして登場しました。このハーモニー

鉄拳のカーネル・サンダースの夢をKFCが揚げた 鉄拳のカーネル・サンダースの夢をKFCが揚げた Oct 02, 2024 am 06:07 AM

『鉄拳』シリーズのディレクターである原田勝弘氏は、かつて真剣にカーネル・サンダースを象徴的な格闘ゲームに登場させようとした。 TheGamerとのインタビューで原田氏は、このアイデアを日本KFCに売り込み、ファストフード界のレジェンドをGとして追加したいと考えていたことを明かした。

Cyber​​truck FSD のレビューでは、素早いレーン切り替えと全画面視覚化が賞賛されています Cyber​​truck FSD のレビューでは、素早いレーン切り替えと全画面視覚化が賞賛されています Oct 01, 2024 am 06:16 AM

テスラは最新の完全自動運転 (監視付き) バージョン 12.5.5 を展開しており、これには、ファウンデーション シリーズのトリム価格に含まれる機能を備えたピックアップが発売されてから 10 か月後に、約束されていたサイバートラック FSD オプションがついに付属します。 F

初見:次期 Anker Zolo 4 ポート 140W ディスプレイ付き充電器の開封ビデオが流出 初見:次期 Anker Zolo 4 ポート 140W ディスプレイ付き充電器の開封ビデオが流出 Oct 01, 2024 am 06:32 AM

2024年9月初め、AnkerのZolo 140W充電器がリークされました。これは同社初のディスプレイ付き壁掛け充電器だったため、大きな話題になりました。 YouTube の Xiao Li TV からの新しい開封ビデオでは、この製品を直接見ることができます。

Garmin、新しいアップデートにより複数のスマートウォッチ向けの Adventure Racing アクティビティの改善をリリース Garmin、新しいアップデートにより複数のスマートウォッチ向けの Adventure Racing アクティビティの改善をリリース Oct 01, 2024 am 06:40 AM

Garmin は、最新のハイエンド スマートウォッチの新しい安定したアップデートのセットで月末を迎えます。要約すると、同社は Enduro 3、Fenix E、および Fenix 8 のバッテリー消耗の多さに対処するためにシステム ソフトウェア 11.64 をリリースしました (Amazon で現在 1,099.99 ドル)。

HyperOS を搭載した新しい Xiaomi Mijia グラフェン オイル ヒーターが到着 HyperOS を搭載した新しい Xiaomi Mijia グラフェン オイル ヒーターが到着 Oct 02, 2024 pm 09:02 PM

Xiaomiは間もなくMijiaグラフェンオイルヒーターを中国で発売する予定です。同社は最近、Youpin プラットフォームでホストされるスマート ホーム製品のクラウドファンディング キャンペーンを実施し、成功を収めました。ページによると、デバイスはすでに出荷され始めています

Samsung Galaxy Z Fold Special Edition、競合する名前が浮上、10月下旬に発売されることが判明 Samsung Galaxy Z Fold Special Edition、競合する名前が浮上、10月下旬に発売されることが判明 Oct 01, 2024 am 06:21 AM

サムスンの待望の折りたたみ式「スペシャルエディション」の発売には、また新たな展開が加わった。ここ数週間、いわゆる Galaxy Z Fold Special Edition に関する噂はかなり静かになりました。代わりに、焦点はGalaxy S25シリーズに移りました。

Manjaro 24.1「Xahea」は、KDE ​​Plasma 6.1.5、VirtualBox 7.1 などとともに起動します Manjaro 24.1「Xahea」は、KDE ​​Plasma 6.1.5、VirtualBox 7.1 などとともに起動します Oct 02, 2024 am 06:06 AM

10 年以上の歴史を持つ Manjaro は、インストールと使用が簡単で、初心者とパワーユーザーの両方に適した最もユーザーフレンドリーな Linux ディストリビューションの 1 つとみなされています。主にオーストリア、ドイツ、フランスで開発されたこの Arch ベースのディストリビューション

See all articles