我想在查询结果中循环多次,我有两种方法:
1-
while($data = mysql_fetch_array($res , MYSQL_ASSOC)
{
array_push($new_arr , $data);
}
foreach($sites as $s){
foreach($new_arr as $d)
{
//some code
}
}
2-
foreach($sites as $s){
while($data = mysql_fetch_array($res , MYSQL_ASSOC)
{
//some code
}
mysql_data_seek($res,0);//set the pointer
}
我的问题:我认为选项2更有效但是如果我在mysql_fetch_array(选项2)中失去与db的连接怎么办?我得到了很多结果;这将需要大约10-20分钟。这会影响查询结果($ res)还是安全的?
答案 0 :(得分:3)
执行mysql_query()时,数据被映射到mysql客户端分配的缓冲区中,因此丢失连接是无关紧要的。您引用的第一个方法将创建数据的另一个副本作为PHP数组 - 这不是非常有效。
另外,WTF是嵌套循环($ sites)吗?看起来你的数据没有被规范化,或者你的算法非常糟糕。