Php OOP类继承错误
对于第二个类,我想从mysqli数据库中获取所有线程。我从第一个类开始扩展它,因为我需要连接信息。这就是我实现类的方式:Php OOP类继承错误,php,mysql,oop,object,mysqli,Php,Mysql,Oop,Object,Mysqli,对于第二个类,我想从mysqli数据库中获取所有线程。我从第一个类开始扩展它,因为我需要连接信息。这就是我实现类的方式: class forum extends db{ public function __construct() { parent::__construct(); } function displayInfo () { $this->forumInfo = $getInfo = $db->db-
class forum extends db{
public function __construct() {
parent::__construct();
}
function displayInfo () {
$this->forumInfo =
$getInfo = $db->db->query("SELECT * FROM threads");
while($getI = $getInfo->fetch_object()) {
return $getI->Title;
}
}
}
但我明白了
注意:第42行未定义的属性:forum::$db
致命错误:对第42行中的非对象调用成员函数查询
没有所谓的$db-您现在想要$this作为类的一部分,所以
$ThreadInfo = new forum;
$ThreadInfo->displayInfo();
函数中未定义变量$db。将行更改为:
$getInfo = $this->db->query("SELECT * FROM threads");
首先,您的连接没有实例化,您需要在db类中调用connect
$this->db->query
其次,您希望在类的作用域中访问$db:
function __construct() {
$this->dbhost = DB_HOST;
$this->dbuser = DB_USER;
$this->dbpassword = DB_PASSWORD;
$this->dbname = DB_NAME;
$this->connect();
}
不要从数据库类扩展类。
这就是你做错的地方。以各种方式
将$db类的实例传递到论坛:
$getInfo = $this->db->query("SELECT * FROM threads");
此外,displayInfo函数的代码都是错误的。
在开始学习其他课程之前,您需要学习基本的mysqli操作。这个问题似乎离题了,因为它是关于一个易于谷歌搜索和修复的通知,以及一个以前被问过并回答过的令人厌恶的打字错误,不应该再提出另一个关于它的问题。另一方面,您为什么要使用PHP4 OOP?很多OOP都是关于封装的。然而,您的代码没有使用任何可见性修饰符,有效地公开了所有类内部。支票,请。
$getInfo = $this->db->query("SELECT * FROM threads");
class forum {
private $db;
public function __construct($db) {
$this->db = $db;
}
function getInfo () {
}
}