1

我有以下功能:

class Forums {
        public function getForum($id) {
            $database = new Database();
            $mysqli = $database->databaseConnection();
            $stmt = $mysqli->prepare("SELECT name, description FROM forums WHERE id = ?");
            $stmt->bind_param("i", $id);
            $stmt->execute();
            return $stmt;
        }
}

我这样调用它:

$forums = new Forums();
$result = $forums->getForum($_GET["id"]);
$result->bind_result($name, $description);
$result->fetch();

然后,由于它只返回一行,请在需要时调用$name或调用。$description

但是,我在浏览器(Chrome)中收到以下错误:

错误 324 (net::ERR_EMPTY_RESPONSE):服务器关闭了连接,没有发送任何数据。”

如果我摆脱该函数并连接到数据库并直接在使用结果的文件中创建准备好的语句,则不会发生这种情况。

为什么会这样?

4

1 回答 1

2

看起来像一个变量范围问题。持有的对象在方法执行$mysqli后直接销毁。getForum()所以此时打开的数据库连接也被破坏了。但$result->fetch();需要连接仍然打开。

于 2012-12-12T20:57:54.437 回答