1

mysqli オブジェクトをクラスに渡したい。オブジェクトを 1 つのファイルに作成します。

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

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

1ページに含まれています:

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

なにが問題ですか ?

4

1 に答える 1

2

$thisクラスのクラス プロパティにアクセスするときに使用する必要があり$_linkます。

コンストラクターには、次のものがあります。

$_link = $link;

これは次のようになります。

$this->_link = $link;

getPageContent()メソッドには次のものがあります。

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

これは次のようになります。

$result = mysqli_query($this->_link,$query);
于 2012-11-07T14:29:20.483 に答える