2012-01-08 4 views
0

여기 포스터 덕분에 MySQLi를 사용하고 명세서를 준비했습니다. 그러나 MySQL을 사용하는 방식에서 적응하는 방법을 모르는 한 가지 문제가 있습니다.mySQLI 관리

전에 필자는 주 PHP 스크립트 시작 부분에 MySQL에 대한 연결을 열어 놓았습니다. 그런 다음 서브 스크립트 나 클래스를 사용하면 mysql_query() 호출을 호출하여 동일한 연결을 자동으로 사용합니다.

이제는 MySQLI를 사용하여 클래스에서 연결을 사용하려는 경우 생성자를 통해 연결을 전달하거나 새 MySQLI 연결을 만들어야합니다.

이전에 MySQL 연결을 사용했던 것과 같은 방식으로 MySQLI 연결을 사용할 수 있습니까? 생성자에 접속 전달

돌봐은 리

답변

1

종종 바람직한 방법이다. 이를 "Dependency Injection"라고하며 소프트웨어 테스팅에 유용합니다. 당신이 방법을 사용하지 선호하는 경우

그러나, 당신은 단순히 어떤 클래스 메소드 내에서 전 세계적으로 연결에 액세스 할 수 있습니다

// MySQLi connection created in the global scope 
$conn = new MySQLi(...); 

class someClass { 
    public someMethod() { 
    // Call $conn with the global keyword 
    global $conn; 

    $conn->query(...); 
    } 
} 

하지만, 클래스 속성에 $conn을 저장하는 더 나은 :

class someClass { 
    // Connection property 
    public $conn; 

    public function __construct($conn) { 
    $this->conn = $conn; 
    } 

    public someMethod() { 
    $this->conn->query(...); 
    } 
} 

객체 지향이 아닌 절차 적 맥시로 MySQLi를 사용하는 경우 link 매개 변수를 제공해야합니다. 주변에는 방법이 없습니다.

+0

고마워, 그게 내가 두려웠 던 이유야. –