gpt4 book ai didi

php - 如何使用 store_result() 获取数据?

转载 作者:行者123 更新时间:2023-11-30 23:42:47 24 4
gpt4 key购买 nike

我在执行准备好的语句后尝试使用 $stmt->store_result() 时遇到问题。手册上说“Transfers a result set from a prepared statement”,但是到哪里呢?

理想情况下,我想使用它,一切都很好,并缓冲在内存中,如 $mysqli->query() 返回。

PHP 文档示例使使用 store_result() 的唯一充分理由似乎是获取行数。

理想情况下,我需要能够从准备好的语句中获取整个结果集并对其执行类似 fetch_rows 的操作。我确实通过扩展 mysqli_stmt 类并使用一些向后方法添加 fetch_assoc 函数来破解它,但如果我可以缓冲所有数据,我真的很想删除该 hack进入内存。

所以我想我的简短问题是,我知道 store_result() 的作用,但您如何使用它?

(老实说,我什至不会使用 $mysqli->prepare() 来获取 stmt,如果它在防止 SQL 注入(inject)攻击、清除变量方面不是那么有用,并使用所有这些问号使我的 SQL 看起来非常漂亮。)

最佳答案

store_result() 所做的唯一一件事就是将结果从 MySQL 移动到 PHP 内存中。它不是很有用,因为您仍然需要将结果提取到 PHP 变量中。

您正在寻找的是get_result()。此函数将从 MySQL 获取结果并将它们存储在 PHP 内存中,另外返回一个熟悉的 mysqli_result 对象。

$stmt = $mysqli->prepare('SELECT ? as col');
$stmt->bind_param('s', $variable);
$stmt->execute();

// returns mysqli_result object
$result = $stmt->get_result();

// loop to get associative rows
foreach ($result as $row) {
echo $row['col'];
}

关于php - 如何使用 store_result() 获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1473141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com