今天我试图将我的代码转换为PHP/MySQLi OOP代码。PHP代码转换为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;
}
}
这是查询的脚本:
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;
}
}
这也是我怎么称呼它。
$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>";
我总是得到一个“调用一个非对象的成员函数query()”。不要紧,我特里...
有人可以告诉我为什么这是?
谢谢!
您需要更改为公开。 'private $ mysqli;'到'public $ mysqli;'。 –
'Database :: mysqli'是私人的 – PeeHaa
谢谢戴夫,这确实有效!但不应该$ mysqli总是私人的? –