Heim >Backend-Entwicklung >PHP-Tutorial >Verwenden Sie den Konstruktor und Destruktor von PHP, um Beispielcode für die MySQL-Datenbankabfrageklasse zu schreiben

Verwenden Sie den Konstruktor und Destruktor von PHP, um Beispielcode für die MySQL-Datenbankabfrageklasse zu schreiben

黄舟
黄舟Original
2017-07-02 10:20:051430Durchsuche

Für PHPAbfragen von MySQL-DatenDie Schreibmethode model.php der Bibliothek ist nicht perfekt genug. In jeder Methode müssen Sie das $con-Objekt von MySQL selbst deklarieren und das $con-Objekt von schließen MySQL selbst. Auf diese Weise wird bei zu vielen Abfragemethoden ohne Grund viel Code zum Deklarieren von $con-Objekten und zum Schließen von $con-Objekten hinzugefügt. Tatsächlich können Sie den Konstruktor und den Destruktor von PHP vollständig verwenden, um $con-Objekte in jede Abfragemethode der Datenbankklasse einzufügen und gleichzeitig das $con-Objekt nach jeder Abfrage automatisch wiederzuverwenden.

Geben Sie einfach ein Beispiel, um dieses Problem zu veranschaulichen. Zunächst ist unsere Aufgabe sehr einfach, nämlich die Testtabellentabelle der Testdatenbank in MySQL abzufragen, sortiert nach Datum und Uhrzeit in absteigender Reihenfolge Webseite.

Wie unten gezeigt:


Zuerst schreiben wir eine model.php wie folgt,

deklarieren zunächst eine private Klasse Member $con dient als globale Variable dieser Klasse.

Sie können den Code zum Herstellen der Datenbankverbindung in den Konstruktor construct() der Datenbankabfrageklasse testtable und den Code zum Schließen der Datenbankverbindung in den Destruktor einfügen In der Nummer sind „destruct()“, „construct()“ und „destruct()“ reservierte Schlüsselwörter für Funktionsnamen in PHP. Das heißt, sobald diese beiden Funktionen deklariert sind, Sie gelten als Konstruktoren und Destruktoren.

Es ist erwähnenswert, dass Sie beim Zuweisen eines Werts zum deklarierten privaten Klassenmitglied $con die Form $this->con verwenden müssen. Sie können $con=xx nicht direkt verwenden. Wenn es $con=xx ist, geht PHP davon aus, dass der Gültigkeitsbereich dieser Variablen nur innerhalb der aktuellen Funktion liegt und sich nicht auf die gesamte Klasse auswirken kann.

Der Konstruktor benötigt eine Variable $databaseName, bei der es sich um den Namen der Datenbank handelt, die der Aufrufer abfragen muss.

<?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);    
    }  
}  
?>





Nach Abschluss kann die Abfragemethode der Datenbankabfrageklasse getAll() direkt abgefragt werden, ohne die Datenbankverbindung zu deklarieren und zu schließen. Nach der Abfrage wird der Destruktor zum Recycling verwendet.

Führen Sie zuerst diese testtable-Abfrageklasse in controller.php ein und rufen Sie dann die Methode getAll() auf. Sie erhalten den oben gezeigten Effekt:

    <?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>";    
    ?>

Das obige ist der detaillierte Inhalt vonVerwenden Sie den Konstruktor und Destruktor von PHP, um Beispielcode für die MySQL-Datenbankabfrageklasse zu schreiben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn