我想要多次遍历我的查询结果,我有两种方法:
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)期间失去了与数据库的连接,该怎么办?我得到了很多结果;这大约需要10-20分钟。这会影响查询结果($res)还是它们是安全的?
发布于 2012-12-12 01:07:15
当您执行mysql_query()时,数据被映射到mysql客户机分配的缓冲区中,因此断开连接是无关紧要的。您引用的第一种方法将以PHP数组的形式创建数据的另一个副本-效率不是很高。
另外,WTF是嵌套循环($sites)做的吗?看起来要么你的数据没有正规化,要么你的算法很糟糕。
https://stackoverflow.com/questions/13824908
复制相似问题