【发布时间】:2014-04-21 13:55:59
【问题描述】:
我在从 mysql 转换到 mysqli 时遇到了一点问题。它由显示的此错误组成:调用非对象上的成员函数查询()
这里是config.php:
$db = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if ($db->connect_error) {
trigger_error('Error: ' . $db->connect_error, E_USER_ERROR);
}
这是statistics.php中的函数:
public function getTotalServerCount() {
$sql = 'SELECT * FROM controlpanel.server';
$total = $db->query($sql);
echo $total;
}
请注意,此函数包含在名为 statistics 的类中。
我了解原始代码是以一种相当程序化的方式完成的,我正在尝试将其转换为面向对象的方式,但我至今无法找到解决方案。
【问题讨论】:
-
你确定你包含了配置文件吗?在
statistics.php中尝试var_dump($db)。 -
$db范围在函数中不可访问。您需要在要使用该对象的函数中传递该对象。 -
$db在您的getTotalServerCount()函数范围内不可用 -
提示:1) 启用完整的错误报告(包括通知) 2) 阅读手册中的使用示例