- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
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 使用完全相同的代码示例,但有一个异常(exception):
/* store first result set */
if ($result = $mysqli->use_result()) {
是的... store_result
变成了 use_result
。请注意,即使上面的评论仍然在说“商店”。
看过代码示例后,我想; “好吧,所以这是一个别名”。可是等等!该文档给出了以下描述:
它们看起来像是两个不同的东西,根本不像别名。仔细观察,我发现 mysqli::use_result()
的代码示例中还有另一个异常。 -page: $result->free();
变成了 $result->close();
。然而,我发现真相的希望很快就破灭了,当我发现在第二个代码示例(程序等效)的同一页上时,使用了 mysqli_free_result($result);
,而不是预期的 mysqli_close_result($result);
。
最佳答案
mysqli::store_result()
将从 MySQL 服务器获取整个结果集,而 mysqli::use_result()
将逐行获取。
您链接到的 mysqli::use_result
文档中也提到了这一点:
The mysqli_use_result() function does not transfer the entire result set from the database and hence cannot be used functions such as mysqli_data_seek() to move to a particular row within the set. To use this functionality, the result set must be stored using mysqli_store_result(). One should not use mysqli_use_result() if a lot of processing on the client side is performed, since this will tie up the server and prevent other threads from updating any tables from which the data is being fetched.
您通常总是可以使用 mysqli::store_result()
除非您有充分的理由不立即从服务器读取所有行。
关于php - mysqli_store_result() 与 mysqli_use_result(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9876730/
我正在使用 php mysql 函数更新一个旧脚本以使用 mysqli,我已经发现了一个有趣的问题 (mysqli_use_result() and concurrency),但它没有阐明一件事: 假
根据mysqli_use_result处的文档 One should not use mysqli_use_result() if a lot of processing on the client
问题 mysqli::store_result() 之间有什么区别?和 mysqli::use_result() ? 故事 模糊的文档 PHP.net 上的文档似乎对两者之间的区别非常模糊。 mysq
我正在尝试遍历所有用户,并从 MySQL 数据库上的帐户表中调用每个用户名的函数。 一开始,我尝试过: $result = mysqli_query($mysqli, "SELECT username
我是一名优秀的程序员,十分优秀!