mysqli_result :: free和mysqli_stmt :: free_result是一样的吗?

时间:2013-06-08 22:12:36

标签: php mysqli

我写了这段代码:

$stmt = $link->prepare($statement_string);

// [...]

$result_m = $stmt->result_metadata();
if ($result_m) {
  $stmt->store_result();

  // [...]

  $stmt->free_result();
  $result_m->free();
}

那个代码对吗?

我阅读了文档mysqli-stmt.result-metadatamysqli-result.free doc。我也读过这篇文章:...free-mysql-result-after-storing-it但我找不到答案。

编辑:

我想知道的是:$stmt->free_result();只会解放由$stmt->store_result();完成的内存分配,或者清楚地释放由mysqli_result构建的$stmt->result_metadata();对象的内存吗?

1 个答案:

答案 0 :(得分:1)

根据这些页面:

mysqli-free-result

mysqli-stmt-free-result

元数据和实际语句数据(行)是不同的对象,因此您必须单独清除它们。

与您在代码中完全一样。