【问题标题】:Mysqli fetch array with prepared statementMysqli 使用准备好的语句获取数组
【发布时间】:2015-01-11 18:56:02
【问题描述】:

我正在准备我的 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();
}

这是我当前的代码,它只返回一个结果。

【问题讨论】:

    标签: php mysql mysqli


    【解决方案1】:

    让我们看看,
    首先,您将选择查询限制为 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 可能是唯一的

    【讨论】:

    • 感谢您指出我需要考虑并相应修改的其他领域。
    猜你喜欢
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多