php - Mysqli 使用准备好的语句获取数组

标签 php mysql mysqli

我正在准备 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/

相关文章:

php - Symfony 4 自定义反序列化器返回实体中的空属性

php - MYSQL 通过搜索 token 问题自定义查询顺序

mysql - 在 MariaDB 中更改 lower_case_table_names 变量

php - 在for循环中向表中插入数据

php - 如何将此函数从 MySQL 转换为 MySQLi? MySQL结果

php - PHP 中的 substr_replace 编码

javascript - 使用 JavaScript 将新行添加到表时重置输入字段

mysql - 我应该使用什么样的 mysql 连接来实现这一点?

php - 将 MySQL 数据分类为限制大小的页面,并在屏幕上选择更改页面?它是如何完成的?

php - sql更新语句失败