phpMysqlデータのクエリについては、ライブラリのmodel.phpの記述メソッドは十分に完璧ではなく、各メソッドでmysqlの$conオブジェクトを自分で宣言し、mysqlの$conオブジェクトを閉じる必要があります。このように、クエリメソッドが多すぎると、$con オブジェクトの宣言や $con オブジェクトを閉じるためのコードが無駄に追加されてしまいます。実際、PHP のコンストラクターと デストラクター を完全に使用して、データベース クラスの各クエリ メソッドに $con オブジェクトを挿入し、同時に各クエリの後に $con オブジェクトを自動的にリサイクルすることができます。
この問題を説明するために例を挙げてみましょう。まず、私たちのタスクは非常に単純です。これは、mysql 内のテスト データベースのテスト可能テーブルの結果を、日付と時刻の降順で Web ページにクエリすることです。
以下に示すように:
まず、model.php を次のように記述します。
最初に、プライベート クラス メンバー $con をこのクラスのグローバル変数として宣言します。
データベース接続を確立するコードをデータベース クエリ クラス testtable の constructorconstruct() に配置し、データベース接続を閉じるコードをデストラクターに配置できます。 destruct()、construct()、destruct() という数字は、PHP の関数名の予約キーワードです。つまり、これら 2 つの関数が宣言されると、 これらはコンストラクターとデストラクターとみなされます。
宣言されたプライベート クラス メンバー $con に値を割り当てるときは、$this->con 形式を使用する必要があることに注意してください。 $con=xx を直接使用することはできません。$con=xx の場合、PHP は、この変数のスコープは現在の関数内のみであり、クラス全体には影響を及ぼさないと見なします。
コンストラクターには変数 $databaseName が必要です。これは、呼び出し元がクエリする必要があるデータベースの名前です。
<?php class testtable{ private $con; function construct($databaseName){ $this->con=mysql_connect("localhost","root","root"); if(!$this->con){ die("连接失败!"); } mysql_select_db($databaseName,$this->con); mysql_query("set names utf8;"); } public function getAll(){ $result=mysql_query("select * from testtable order by date desc;"); $testtableList=array(); for($i=0;$row=mysql_fetch_array($result);$i++){ $testtableList[$i]['id']=$row['id']; $testtableList[$i]['username']=$row['username']; $testtableList[$i]['number']=$row['number']; $testtableList[$i]['date']=$row['date']; } return $testtableList; } function destruct(){ mysql_close($this->con); } } ?>
終了後、getAll()データベースクエリクラスのクエリメソッドはデータベース接続を宣言してデータベース接続を閉じる必要はありません。クエリ、リサイクル用のデストラクター。
まず、controller.php にこの testtable クエリ クラスを導入し、次に getAll() メソッドを呼び出すと、上記のような効果が得られます:
<?php header("Content-type: text/html; charset=utf-8"); include_once("model.php"); $testtable=new testtable("test"); $testtableList=$testtable->getAll(); echo "<table>"; for($i=0;$i<count($testtableList);$i++){ echo "<tr> <td>".$testtableList[$i]['id']."</td> <td>".$testtableList[$i]['username']."</td> <td>".$testtableList[$i]['number']."</td> <td>".$testtableList[$i]['date']."</td> </tr>"; } echo "</table>"; ?>
以上がPHP のコンストラクターとデストラクターを使用して、Mysql データベース クエリ クラスのサンプル コードを作成します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。