phpMysql 데이터를 쿼리하려면라이브러리의 model.php 작성 방법이 완벽하지 않습니다. 각 방법마다 mysql의 $con 개체를 직접 선언하고 mysql의 $con 개체를 직접 닫아야 합니다. 이렇게 쿼리 메소드가 너무 많으면 $con 객체를 선언하고 $con 객체를 닫는 코드가 이유 없이 많이 추가됩니다. 실제로 PHP의 생성자와 소멸자를 완전히 사용하여 데이터베이스 클래스의 각 쿼리 메서드에 $con 개체를 삽입하는 동시에 각 쿼리 후에 $con 개체를 자동으로 재활용할 수 있습니다.
이 문제를 설명하기 위해 예를 들어보겠습니다. 우선 우리의 작업은 매우 간단합니다. mysql에서 날짜와 시간의 내림차순으로 테스트 테이블 테이블의 결과를 웹 페이지에 쿼리하는 것입니다.
아래와 같이
먼저 다음과 같이 model.php를 작성합니다.
먼저 프라이빗 클래스 멤버인 $con을 이 클래스의 전역 변수로 선언합니다.
데이터베이스 쿼리 클래스 testtable의 constructorconstruct()에 데이터베이스 연결을 설정하는 코드를 넣고 소멸자에 데이터베이스 연결을 닫는 코드를 넣을 수 있습니다. 숫자에서 destruct(), constructor() 및 destruct()는 PHP에서 함수 이름에 대해 예약된 키워드입니다. 즉, 이 두 함수가 선언되면, 이들은 생성자와 소멸자로 간주됩니다.
선언된 비공개 클래스 멤버 $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에 도입한 다음 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!