Pour phpInterrogation des données MysqlLa méthode d'écriture model.php de la bibliothèque n'est pas assez parfaite. Dans chaque méthode, vous devez déclarer vous-même l'objet $con de mysql et fermer l'objet $con de. mysql vous-même. De cette façon, s'il y a trop de méthodes de requête, beaucoup de code pour déclarer les objets $con et fermer les objets $con sera ajouté sans raison. En fait, vous pouvez utiliser complètement le constructeur et le destructeur de PHP pour injecter des objets $con dans chaque méthode de requête de la classe de base de données, et en même temps recycler automatiquement l'objet $con après chaque requête.
Donnez juste un exemple pour illustrer ce problème. Tout d'abord, notre tâche est très simple, qui consiste à interroger la table testtable de la base de données de test dans mysql, triée par date et heure par ordre décroissant, au page web.
Comme indiqué ci-dessous :
Tout d'abord, nous écrivons un model.php comme suit,
déclarons d'abord une classe privée le membre $con sert de variable globale de cette classe.
Vous pouvez mettre le code pour établir la connexion à la base de données dans le constructeur construct() de la table test de la classe de requête de base de données, et mettre le code pour fermer la connexion à la base de données dans le destructeur Dans le numéro destruct(), construct() et destruct() sont des mots-clés réservés pour les noms de fonctions en PHP. Autrement dit, une fois ces deux fonctions déclarées, Ils sont considérés comme des constructeurs et des destructeurs.
Il convient de noter que lorsque vous attribuez une valeur au membre de classe privée déclaré $con, vous devez utiliser le formulaire $this->con. Vous ne pouvez pas utiliser directement $con=xx. Si $con=xx, PHP considère que la portée de cette variable se situe uniquement dans la fonction actuelle et ne peut pas affecter la classe entière.
Le constructeur nécessite une variable $databaseName, qui est le nom de la base de données que l'appelant doit interroger.
<?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); } } ?>
Une fois terminé, la méthode de requête de la classe de requête de base de données getAll() peut être interrogée directement sans déclarer ni fermer la connexion à la base de données. Une fois la requête terminée, le destructeur sera utilisé pour le recyclage.
Introduisez d'abord cette classe de requête testtable dans contrôleur.php, puis appelez la méthode getAll(), vous obtiendrez l'effet comme indiqué ci-dessus :
<?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>"; ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!