【问题标题】:Fetch multiple records from php/mysql从 php/mysql 获取多条记录
【发布时间】:2017-05-23 07:35:10
【问题描述】:

我正在获取记录如下:

$aResult = array();
$sql     = "SELECT notes FROM table WHERE user_id = '$user_id'";
$result  = $conn->query($sql);

while($row = mysqli_fetch_array($result)){
    $aResult['query_result'] = $row;
}

这仅返回表中的最后一条记录。我需要从 sql 语句中返回所有记录。

【问题讨论】:

  • 警告:当使用mysqli 时,您应该使用parameterized queriesbind_param 将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug切勿$_POST$_GET 数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。

标签: php mysql sql arrays


【解决方案1】:

把你的$aResult['query_result'] = $row;改成$aResult['query_result'][] = $row;

你每次都覆盖了结果,所以你只得到一个。

【讨论】:

  • @KrisRoofe :) 简单而完美。 +1 快乐编码。
【解决方案2】:

您的循环似乎不断覆盖该值,因此您只会看到最后一行。我认为如果您执行以下操作,您可能会看到更好的结果:

while($row = mysqli_fetch_array($result))
{
    $aResult[] = $row;
}

这样每个新行都会附加到您的数组中

【讨论】:

    【解决方案3】:

    尝试使用以下代码,目前您正在将值初始化到相同的数组键:

    $aResult = array();
    $sql     = "SELECT notes FROM table WHERE user_id = '$user_id'";
    $result  = $conn->query($sql);
    
    while($row = mysqli_fetch_array($result)){
        $aResult['query_result'][] = $row;
    }
    

    更多详情请关注Array

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多