我对 OOP php 还很陌生,但多年来一直在编写程序代码。这是一种完全不同的编码方式(至少对我而言),所以我无法理解这一点:
基本上,我需要提取 MySQL 数据并将其显示在表格中。现在,我有一个类,DBQuery它有两个函数——一个用于查询数据并将其存储在一个数组中,另一个用于使用数组中的内容呈现表格。
如果我var_dump()从查询类中获取数组,我应该从数据库中获取内容。但如果我在displayTable()函数中做同样的事情,它是空的。但是,我在两个函数中都创建了一个很好的$testvar数组var_dump(),所以我在处理$data数组的方式上可能有错误,导致它在某些时候自我破坏,或者我没有以正确的方式传递它。
我已经为此苦苦挣扎了 3 天,而且我确信我在某处遗漏了一个重要的细节——只是无法确定它。
我的 DBQuery 类:
class DBQuery extends dbc {
private $query;
private $testvar = array('testing one','testing two','testing three');
private $data = array();
public function __construct($sqlQuery) {
$testvar = $this->testvar;
$data = $this->data;
$this->query = $sqlQuery;
$result = $this->connect()->query($sqlQuery) or die('Database error');
$numRows = $result->num_rows;
if ($numRows > 0) {
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
var_dump($data); // ***** THIS HAS CONTENT *****
}
}
public function displayTable() {
var_dump($this->testvar); // ***** THIS HAS CONTENT *****
var_dump($this->data); // ***** THIS IS EMPTY *****
}
}
而我的观点:
<?php
$query = new DBQuery("SELECT * FROM users");
$query->displayTable();
?>
我在这里做错了什么?:)
慕的地10843