我正在准备 mysql 查询以尝试提高安全性,但是当我尝试获取准备好的语句的结果时遇到问题。我可以成功获取一行数据,但是我没有成功获取一组数据。我所做的所有研究都提供了一些示例,这些示例要么不起作用,要么太复杂。
我当前的代码
if ($stmt = $dbc->prepare("SELECT city FROM users WHERE id = ? LIMIT 1")) {
$stmt->bind_param('i', $id); // Bind id to parameter.
$stmt->execute(); // Execute the prepared query.
$stmt->store_result();
// get variables from result.
$stmt->bind_result($city);
$stmt->fetch();
}
这是我当前的代码,仅返回一个结果。
最佳答案
好吧,让我们看看,
首先,您将选择查询限制为 1 个结果,这就是为什么它只返回 1 个结果的原因之一,
其次,您没有使用 while 循环来循环结果,请尝试以下操作:
$stmt = $dbc->prepare("SELECT city FROM users WHERE id = ?");
$stmt->bind_param('i', $id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($city);
while($stmt->fetch()){
echo $city;
}
但请记住,您的查询可能只会返回 1 个值,因为 ID 可能是唯一的
关于php - Mysqli 使用准备好的语句获取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27890837/