我想多次循环查询结果,我想到了两种方法:
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)还是安全?
最佳答案
当你执行mysql_query()时,数据被映射到mysql客户端分配的缓冲区中,因此失去连接是无关紧要的。您引用的第一个方法将创建数据的进一步副本作为 PHP 数组 - 这不是很有效。
另外,嵌套循环($sites)在做什么?看起来要么你的数据没有规范化,要么你的算法非常糟糕。
关于php - 如果在获取期间连接丢失,mysql_fetch_array 会失败吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13824908/