如何在 PHP foreach 循环中从数据库返回结果


How to return results from a database in a PHP foreach loop

所以我有这个代码:

foreach ($_SESSION['basket'] as $item) {
    $ref = $_SESSION['basket'][$counter];
    $result = pg_query ($conn, 'SELECT * from music WHERE ref='.$ref.' ORDER BY artist');
}

这将输出第一行,但是如果我尝试检索多行,它会输出此Warning: pg_fetch_row() expects parameter 1 to be resource, boolean given。我不明白我是如何给参数 1 一个布尔值的,这是第 46 行的代码,它收到错误: ($row = pg_fetch_row($result))

提前致谢

您可以使用

$row =pg_fetch_array($result)然后$row['field_name']在foreach循环中取出值。

此错误可能是因为连接变量$conn未连接到数据库。

尝试所有可能性。谢谢。

如果查询失败,pg_query返回FALSE 。此外,您应该改用pg_query_params来防止 SQL 注入。

看看 PHP 文档中的示例:http://php.net/manual/en/function.pg-query.php。

切记:

  • A:转义输入,甚至更好地使用预准备语句
  • B:在迭代结果之前检查返回值。如果发生错误,尝试迭代是没有意义的。

一般来说,PHP 文档是一个很好的地方,当努力处理 PHP-API 的细节时,有时......不如他们可能直观。:-)