2012-11-07 76 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; 

這應該是:

$this->_link = $link; 

在你getPageContent()方法,你必須:

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

這應該是:

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

它不是全局的,它是一個對象屬性。 –

+1

@MadaraUchiha對不起,很好的術語(不知道我在想什麼= P)。更新我的措辭=] – newfurniturey