我有一个用户类,我需要使用我的数据库。为此,我将数据库句柄作为构造函数参数传递,如下所示:
的index.php:
<?php
include('classes/user.class.php');
$db = new mysqli('localhost', 'root', '', 'testdb');
if ($mysqli->connect_error)
{
die('Database connection failed (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}
$user = new User($db);
$db->close();
?>
user.class.php:
<?php
class User
{
private $db;
function __construct($db)
{
$this->db = $db;
echo $this->db->host_info();
}
}
?>
但是我收到了这个错误:
致命错误:调用未定义的方法 mysqli :: host_info()in C:\ XAMPP \ htdocs中\类\ user.class.php 在第10行
我不确定是什么问题,也许我错误地将它传递给了数据库的句柄,但我想不出有任何其他方法可以做到这一点。即使我在我的用户类中将$db
变量设置为public,我也会收到此错误。
有人可以帮忙吗?感谢。
答案 0 :(得分:3)
host_info不是方法,它是对象的属性。
您应该使用:
echo $this->db->host_info;
有关详细信息,请参阅官方文档:
答案 1 :(得分:0)
host_info不是方法。这是一个属性。尝试:
echo $this->db->host_info;