首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php mysql 2种不同的方式

问php mysql 2种不同的方式
EN

Stack Overflow用户
提问于 2009-12-18 23:57:15
回答 4查看 116关注 0票数 1

我最近遇到了一些代码,这些代码是第一个人做的。想知道最上面的是不是更好,或者为什么一个人会这样写?任何积极的理由超过底层的方式。

代码语言:javascript
复制
$result = mysql_query($query)or die("Obtaining location data failed!");
for ($i = mysql_num_rows($result) - 1; $i >=0; $i--)
{
  if (!mysql_data_seek($result, $i))
  {
    echo "Cannot seek to row $i\n";
    continue;
  }
  if(!($row = mysql_fetch_object($result)))
    continue;
  echo $row->locationname;
}
mysql_free_result($result);

vs

代码语言:javascript
复制
$result = mysql_query($query) or die("Obtaining location data failed!");
while($row = mysql_fetch_object($result)){
  echo $row->locationname;
  unset($row);
}
mysql_free_result($result);
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-19 00:03:28

看起来最上面的代码是向后迭代mysql结果,第一个代码是向前迭代。

第二个代码示例看起来更干净,而且可能有一种方法可以调整查询,使其首先以相反的顺序获得结果,而不是像执行顶部循环那样有点复杂。

票数 1
EN

Stack Overflow用户

发布于 2009-12-19 00:04:47

这两个不是等价的,因为只有第一个以相反的顺序处理结果集。

如果只是为了保持代码简单,我会用ORDER BY x DESC子句这样做。当使用mysql_query()时,完整的结果集在函数返回之前从MySQL服务器传输到php进程,而mysql_data_seek()只是在进程内存中移动一些指针,所以就性能而言,这并不重要。但是,如果您在某些时候决定使用无缓冲查询,这可能会很好地影响性能。

票数 1
EN

Stack Overflow用户

发布于 2009-12-19 00:08:03

肯定是第二个:

更少的代码=更少的代码维护=~也许更少的bug!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1929028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档