2

我有一个数据库类,它具有多个执行查询的功能。其中之一是最简单的:

public function query($query) {
    return $this->_link->query($query);
}

$this->_link->query 在其他情况下工作,所以它应该在这里工作。从具有类实例的文件中,我这样做:

function createLineChart() {

    $query = "select * from tags";
    $result = $db->query($query);

    // do something with result
}

createLineChart();

但它在 $result 行上中断。查询也是有效的,我已经测试过了。我错过了什么吗?

4

3 回答 3

2
function createLineChart() {
    var_dump($db);
    // this should probably return 'undefined'
    global $db;
    // so globalize it!
    $query = "select * from tags";
    $result = $db->query($query);
    // do something with result
}
于 2013-01-05T16:26:45.890 回答
2

您的问题$db超出了该createLineChart()功能的范围。您可以使用全局方法:

function createLineChart() {
    global $db; // <-- make the db var become available
    $query = "select * from tags";
    $result = $db->query($query);

    // do something with result
}

或者将$db对象作为参数传递给函数:

function createLineChart($db) {

    $query = "select * from tags";
    $result = $db->query($query);

    // do something with result
}

createLineChart($db);

有关手册上的变量范围的更多信息。

于 2013-01-05T16:27:11.557 回答
1

如果$db是类变量,那么您需要将其称为:

$result = $this->db->query($query);
于 2013-01-05T16:09:51.560 回答