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

时间:2014-11-30 20:13:47

标签: php sql postgresql

所以我有这段代码:

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))

提前致谢

3 个答案:

答案 0 :(得分:1)

您可以使用$row =pg_fetch_array($result)然后$row['field_name']在foreach循环中取值。

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

尝试所有可能性。谢谢。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

请记住:

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

一般来说,PHP文档是一个很好的地方,当时需要了解PHP-api的细节,有时......不太直观。 : - )