>  기사  >  백엔드 개발  >  PHP의 생성자와 소멸자를 사용하여 MySQL 데이터베이스 쿼리 클래스에 대한 샘플 코드 작성

PHP의 생성자와 소멸자를 사용하여 MySQL 데이터베이스 쿼리 클래스에 대한 샘플 코드 작성

黄舟
黄舟원래의
2017-07-02 10:20:051372검색

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][&#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에 도입한 다음 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.