我试图使用PHP Object方法从数据库获取所有值并获得错误:
致命错误:未捕获错误:调用未定义的方法 Calldb :: mysqli_query()in C:\ XAMPP \ htdocs中\ geomaticxpms \核心\ Alltablevalue.php:13
堆栈跟踪:0 C:\ xampp \ htdocs \ geomaticxpms \ manager \ header.php(8): Alltablevalue- Getallvalue( '业务') 在第13行的C:\ xampp \ htdocs \ geomaticxpms \ core \ Alltablevalue.php中抛出1 {main}
我有自定义自动加载器文件,它通过PHP包含函数调用所有文件
我使用(Calldb.php)连接数据库:
class Calldb {
public $db;
public function __construct() {
require_once('config.db.php');
$this->db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABSE);
if(mysqli_connect_errno()) {
echo "Error: Could not connect to database.";
exit;
}
}
public function __destruct() {
mysqli_close($this->db) OR die("There was a problem disconnecting from the database.");
}
}
获取所有表格数据(Alltablevalue.php):
class Alltablevalue {
public $db;
public $table;
public $data;
function __construct($db)
{
$this->db = $db;
}
function Getallvalue($table){
$this->table = $table;
$data = $this->db->mysqli_query("SELECT * FROM $this->table");
if($data->num_rows > 0){
$row = $connect->fetch_assoc();
return $this->$row;
}
else { return false;}
}
}
输出页面:
include_once('functions.php');
if (!$including) exit("direct access not permitted");
//echo "<pre>";
$db = new Calldb();
$connect = new Alltablevalue($db);
$data = $connect->Getallvalue("business"); // "business" is table name
请指导,以便我可以使它工作。 如果需要,我会提供所有说明。
通过functions.php调用自动加载器类文件
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});
答案 0 :(得分:0)
“Alltablevalue.php”中的问题
class Alltablevalue {
public $db;
public $table;
public $data;
function __construct($db)
{
$this->db = $db;
}
function Getallvalue($table){
$this->table = $table;
$data = $this->db->db->query("SELECT * FROM $this->table");
if($data->num_rows > 0){
$row = $data->fetch_assoc();
return $row;
}
else { return false;}
}
}