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_resultuse_result
更令人困惑
看过代码示例后,我想;“好吧,所以这是一个别名”。但是等等!该文档给出了以下说明:
- mysqli_store_result — 传输上一个查询的结果集
- mysqli_use_result — 启动结果集检索
它们看起来像是两个不同的东西,根本不像别名一样。仔细观察,我发现在mysqli::use_result()-page:的代码示例中还有另一个异常:变成了。然而,我找出真相的希望很快就破灭了,当我发现在第二个代码示例(过程等效物)的同一页面上,使用了,而不是预期的 。$result->free();$result->close();mysqli_free_result($result);mysqli_close_result($result);