我想对单个sql查询返回的数据执行不同的操作,如下所示:
$sql = "SELECT * FROM mandant";
$res = pg_query($_db,$sql);
while ($mandant_list = pg_fetch_object($res))
{
# do stuff
}
while ($mandant = pg_fetch_object($res))
{
# do other stuff
}
但这不起作用。第一个循环获取数据,第二个循环不获取数据。
是否可以重用从查询返回的结果而不再运行它? 如果没有,为什么? $ res变量会发生什么?
答案 0 :(得分:3)
是的,您可以使用pg_result_seek()“快退”结果资源。
答案 1 :(得分:0)
有可能。
第二个循环中断的原因是因为每次从数据集中取出一行时它都会递减,直到对象中没有剩余行为止。
你需要制作2份$ res,然后在第二张$ res上运行第二份while()
。