ホームページ  >  記事  >  バックエンド開発  >  PHP のコンストラクターとデストラクターを使用して、Mysql データベース クエリ クラスのサンプル コードを作成します。

PHP のコンストラクターとデストラクターを使用して、Mysql データベース クエリ クラスのサンプル コードを作成します。

黄舟
黄舟オリジナル
2017-07-02 10:20:051377ブラウズ

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][&#39;id&#39;]=$row[&#39;id&#39;];  
            $testtableList[$i][&#39;username&#39;]=$row[&#39;username&#39;];    
            $testtableList[$i][&#39;number&#39;]=$row[&#39;number&#39;];    
            $testtableList[$i][&#39;date&#39;]=$row[&#39;date&#39;];    
        }    
        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][&#39;id&#39;]."</td>  
                <td>".$testtableList[$i][&#39;username&#39;]."</td>  
                <td>".$testtableList[$i][&#39;number&#39;]."</td>  
                <td>".$testtableList[$i][&#39;date&#39;]."</td>  
            </tr>";    
        }   
        echo "</table>";    
    ?>

以上がPHP のコンストラクターとデストラクターを使用して、Mysql データベース クエリ クラスのサンプル コードを作成します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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