这是我今天的第二篇文章,因为我对 PHP 的 OOP 非常陌生,所以如果这是一个愚蠢的问题,请耐心等待...
我创建了一个漂亮的类,我希望它能够与我的“JOB”对象一起使用,其中包括能够使用这个单一对象从许多表中提取数据,以便最终用户看到相关数据。例如,在我的课堂上,我有:
public function showProjectManager() {
$q = "SELECT m.name FROM " . jJOBS . " AS j JOIN " . jMEI . " AS m ON m.uid = j.mei WHERE id = " . $this->id;
$r = $this->_dblink->query($q);
$row = $r->fetch_assoc();
return $row['name'];
}
因为 jJOBS 表中存储的数据只是一个引用另一个表中的 id 的数字。有几条这样的数据存储在主 jJOBS 表中。
因此,在另一段代码中有一个下拉框,允许用户选择特定的“作业”并使用 AJAX 调用我想显示来自该作业的数据。我要做的是创建一个 JOB 对象(其中包括 showProjectManager 方法),使用mysqli_fetch_object从数据库中读取所有属性,然后调用 showProjectManager 方法,如下所示:
$disp = new Job();
$q = "SELECT * FROM " . jJOBS . " WHERE id = " . $job_id;
$r = $jobsdb->query($q);
$disp = $r->fetch_object();
$zList .= "<li><span class='smLabels l'>Project Manager :</span>\n<span class='smText r'>" . $disp->showProjectManager() . "</span></li>";
但每当我从数据库中获取对象时,$disp对象就会恢复为 stdClass。如何维护正确的类并从数据库访问我需要的值?我所读到的关于这个主题的所有内容都需要使用看起来非常复杂的 DataMapper,尤其是对于这种情况。