2012-11-07 77 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