ホームページ >バックエンド開発 >PHPチュートリアル >[php] PHP のコンストラクターとデストラクターを使用して Mysql データベース クエリ クラスを作成する

[php] PHP のコンストラクターとデストラクターを使用して Mysql データベース クエリ クラスを作成する

WBOY
WBOYオリジナル
2016-06-23 13:33:56817ブラウズ

前回「【php】独自のJavaScript Ajaxを使ったphp向けMVC階層設計、IE6対応」(クリックするとリンクが開きます)の記事で、phpがMysqlデータベースにクエリするためのmodel.phpの書き方がうまくいきませんでした。メソッド内で、mysql の $con オブジェクトを自分で宣言し、同時に mysql の $con オブジェクトを自分で閉じる必要もあります。このように、クエリメソッドが多すぎると、$con オブジェクトの宣言や $con オブジェクトを閉じるためのコードが無駄に追加されてしまいます。実際、PHP のコンストラクターとデストラクターを完全に使用して、データベース クラスの各クエリ メソッドに $con オブジェクトを挿入し、同時に各クエリの後に $con オブジェクトを自動的にリサイクルすることができます。

この問題を説明するために例を挙げてみましょう。まず、私たちのタスクは非常に単純です。これは、mysql のテスト データベースの testtable テーブルの結果を、日付と時刻の降順で Web ページにクエリすることです。

以下に示すように:


まず、model.php を次のように記述します。

最初に、プライベート クラス メンバー $con をこのクラスのグローバル変数として宣言します。

データベース接続を確立するコードをデータベース クエリ クラス testtable のコンストラクター __construct() に配置し、データベース接続を閉じるコードをデストラクター __destruct() に配置できます。ここで、__construct() と __destruct () はPHP の関数名の予約キーワード。つまり、これら 2 つの関数が宣言されると、それらはコンストラクターとデストラクターとみなされます。

宣言されたプライベート クラス メンバー $con に値を割り当てるときは、$this->con 形式を使用する必要があることに注意してください。 $con=xx を直接使用することはできません。$con=xx の場合、PHP は、この変数のスコープは現在の関数内のみであり、クラス全体には影響を及ぼさないと見なします。

コンストラクターには変数 $databaseName が必要です。これは、呼び出し元がクエリする必要があるデータベースの名前です。

データベース クエリ クラスのクエリ メソッド getAll() を終了した後、データベース接続を宣言して閉じる必要はありません。クエリの後に、リサイクル用のデストラクターがあります。

まず、controller.php にこの testtable クエリ クラスを導入し、次に getAll() メソッドを呼び出すと、上記のような効果が得られます。

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