PHP代码转换为PHP/MySQLi OOP

0 php mysqli

今天我试图将我的代码转换为PHP/MySQLi OOP代码.

class Database
{
private $host;
private $user;
private $password;
private $db;
private $mysqli;

function __construct()
{
    $this->host = "*****";
    $this->user = "*****";
    $this->password = "******";
    $this->db = "*****";

    $this->mysqli = new mysqli($this->host, $this->user, $this->password, $this->db);

    if (mysqli_connect_errno()):
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    endif;
}
}
Run Code Online (Sandbox Code Playgroud)

这是查询的脚本:

include_once("WD_Config/database.php");

class Adressen_Db
{
function __construct()
{
    $this->database = new Database();
}

public function selecteer()
{
    $query = "SELECT * FROM wd_adressen WHERE verborgen = 0 ORDER BY naam ASC";
    $result = $this->database->mysqli->query($query);

    return $result;
}
}
Run Code Online (Sandbox Code Playgroud)

这就是我所说的.

$adressen = new Adressen_Db;
$adressen_result = $adressen->selecteer();

echo "<p>";
while ($row = $adressen_result->fetch_assoc()):
echo "<a href='http://maps.google.com/?q=".$row['voladres']."'     target='_blank'>".$row['naam']."</a> woonachtig op <i>".$row['voladres']."</i><br>";
endwhile;
echo "</p>";
Run Code Online (Sandbox Code Playgroud)

我总是得到一个"在非对象上调用成员函数查询()".不管我是什么......

有人可以告诉我为什么会这样吗?

谢谢!

Kyl*_*uel 5

$mysqli声明了类Database中的变量private.

您只能通过设置器和getter访问它.