<?php
// Forum Configuration
define('DB_HOST','localhost'); // Database Hostname
define('DB_USER','root'); // Database Username
define('DB_PASSWORD',''); // Database Password
define('DB_NAME','ultraforum'); // Database Name
define('WEB_NAME','Website Name'); // Website Name
define('WEB_TITLE','Website Title'); // Website Title
// Do not modify anything under this line :)
class db {
var $dbhost;
var $dbuser;
var $dbpassword;
var $dbname;
var $query;
function connect() {
$this->db =
new mysqli($this->dbhost, $this->dbuser, $this->dbpassword, $this->dbname);
}
function __construct() {
$this->dbhost = DB_HOST;
$this->dbuser = DB_USER;
$this->dbpassword = DB_PASSWORD;
$this->dbname = DB_NAME;
}
}
我的论坛类扩展了数据库
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;
}
}
}
使用第二个类,我想从我的mysqli数据库中获取所有线程。我从第一个类扩展它,因为我想要连接信息。这就是我实现类的方法:
$ThreadInfo = new forum;
$ThreadInfo->displayInfo();
但是我得到了
注意:未定义的属性:论坛:: $ db在第42行 致命错误:在第42行的非对象上调用成员函数query()
答案 0 :(得分:1)
没有什么叫$ db - 你现在想要$ this作为它的一部分
$getInfo = $this->db->query("SELECT * FROM threads");
答案 1 :(得分:1)
您的函数中未定义变量$db
。将行更改为:
$this->db->query
答案 2 :(得分:0)
这就是你做错了。 在各方面。
将$ db类的实例传递到论坛:
class forum {
private $db;
public function __construct($db) {
$this->db = $db;
}
function getInfo () {
}
}
此外,displayInfo()函数的代码都是错误的 你需要学习基本的mysqli操作之前开始其他课程。
答案 3 :(得分:-1)
首先,您的连接未实例化,您需要在db类中调用 connect()。
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");