mysqli_store_result() 与 mysqli_use_result()问题故事
问题
mysqli::store_result()
和 mysqli::use_result()
有什么区别?
故事
模糊的文档
关于 PHP.net 的文档似乎对两者之间的区别非常模糊。mysqli::use_result()
-page不提供任何代码示例,并将您链接到mysqli::multi_query()
-page以查找它们。在该页中,给出了以下代码示例(有关完整代码,请参阅该页):
/* store first result set */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->free();
}
/* print divider */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
mysqli::store_result()
-page 使用完全相同的代码示例,但有一个例外:
/* store first result set */
if ($result = $mysqli->use_result()) {
是的。。。 成为。请注意,即使上面的评论仍然在说“商店”。store_result
use_result
更令人困惑
看过代码示例后,我想;“好吧,所以这是一个别名”。但是等等!该文档给出了以下说明:
- mysqli_store_result — 传输上一个查询的结果集
- mysqli_use_result — 启动结果集检索
它们看起来像是两个不同的东西,根本不像别名一样。仔细观察,我发现在mysqli::use_result()
-page:的代码示例中还有另一个异常:变成了。然而,我找出真相的希望很快就破灭了,当我发现在第二个代码示例(过程等效物)的同一页面上,使用了,而不是预期的 。$result->free();
$result->close();
mysqli_free_result($result);
mysqli_close_result($result);