2012-11-07 5 views
1

mysqli 객체를 클래스에 전달하려고한다. 한 페이지에 포함되어클래스에 mysqli 객체 전달

$host = 'host'; 
$user = 'username'; 
$pw = 'pw'; 
$db = 'db'; 

$link = new mysqli($host,$user,$pw,$db); 

:

include 'php/mysql.php'; 
include 'php/classes/Class.Dataconnector.php'; 
$dc = new Dataconnector($link); 

와 클래스는 다음과 같습니다 : 나는 하나 개의 파일에 객체를 생성

class Dataconnector { 
    protected $_link; 
    protected $_stub; 

    function __construct(mysqli $link) { 
     $_link = $link; 
    } 

    public function getPageContent($stub) { 
     $query = "select * from contents where pageId = (select id from pages where stub = '$stub')"; 
     $result = mysqli_query($_link,$query); 
     return $result; 
    } 
} 

그러나 나는이 오류가 :

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in \php\classes\Class.Dataconnector.php on line 18 

무엇이 잘못 되었나요?

답변

2

클래스의 $_link 클래스 속성에 액세스 할 때 $this을 사용해야합니다. 당신의 생성자에서

, 당신은 :

$_link = $link; 

이가 있어야한다 : 당신의 getPageContent() 방법에서

$this->_link = $link; 

을 당신이 가지고 :

$result = mysqli_query($_link,$query); 

이 있어야한다 :

$result = mysqli_query($this->_link,$query); 
+0

전역 적이 아니며 개체 속성입니다. –

+1

@MadaraUchiha 죄송합니다, 용어에 잘 잡으십시오 (내가 무엇을 생각하고 있는지 확실하지 않습니다 = P). 업데이트 된 내 문구 =] – newfurniturey