php - 如果在获取期间连接丢失,mysql_fetch_array 会失败吗?

标签 php mysql

我想多次循环查询结果,我想到了两种方法:

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/

相关文章:

javascript - 广告内的服务器端图库(php、js?、ajax)

php - 无法登录 mediawiki : canceled as a precaution against session hijacking?

php - 锚定表单的操作 URL

php - 类型错误:传递给 Illuminate\Database\Eloquent\Builder::create() 的参数 1 必须是数组类型,给定为 null

mysql - 当 WHERE 子句与该列进行比较时,不使用 TIMESTAMP 列上的索引

mysql - 使用 SQL,以一种高性能的方式仅替换大文本字段中的一个段落中的字符串(使用子字符串、定位和替换、正则表达式等)

PHP MySQL 查询 "Create Table"- 初学者需要帮助

php - 如何对 drupal 模块中的字段集使用自定义 #theme 函数?

mysql - 从子查询返回数据

mysql - 有没有办法为多对多关系制作汇总表?