我有一个数据库类,它有多个函数来执行查询。其中一个是最简单的:
public function query($query) {
return $this->_link->query($query);
}
$this->_link->查询可以在其他情况下工作,所以它应该在这里工作。对于具有类实例的文件,我这样做:
function createLineChart() {
$query = "select * from tags";
$result = $db->query($query);
// do something with result
}
createLineChart();
,但它在$result行中断。这个查询也是有效的,我已经对它进行了测试。我错过什么了吗?
您的问题是$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);
更多关于变量作用域的信息见手册
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
}
如果$db
是一个类变量,那么您需要将其引用为:
$result = $this->db->query($query);