检索数据库结果

时间:2012-03-28 14:16:15

标签: java php mysql sql

有人可以解释为什么我们需要java: while rs.next()php: while ($result = mysql_fetch_array)?编程语言如何从数据库中检索数据。怎么了 ?为什么不透露整个回应?

我不知道,但我真的不能理解这一点,是令人讨厌的方式。

我需要的文档不仅仅是“因为他们这样做”

PS:

$result = mysql_query($query)不会将查询结果返回给$ result?然后:while ($row = mysql_fetch_array($result)) { do stuff } ??

由于

3 个答案:

答案 0 :(得分:1)

看起来这种特殊方法使用了读者。读取器方法与仅将整个结果集同时存入内存相比具有一些优势:

  • 您有时可以在查询完成之前开始处理
  • 您通常可以在传输所有结果集之前开始处理。
  • 您不必同时将大型数据集保存在内存中(如果您不需要同时拥有所有数据,则可能是一个很大的性能问题。)
  • 从数据库中获取数据是一种非常标准,易于理解的方法。

答案 1 :(得分:1)

因为他们这样做。
或者,如果你喜欢它 - 它是如何工作的。

在我们的生活中,有时候,我们无法得到整体的回应 比如,如果你想从井中填充桶,你通过多次清空桶来填充它。没有其他办法。 并且泵不会有太大的不同 - 无论如何你必须等待,你不能立刻得到“整体反应”。由于源的 stream 性质。

你唯一能做的就是用一些更高级别的替换伪装整个过程,这将在内部执行相同的过程。您可以从愿意为您填写的人那里购买一个装满的桶。

数据库逐个读取表中的行。你不能得到“整体回应”。 但是你可以编写(或使用)一个函数,它将完成所有内部填充并为你提供所需的响应。

答案 2 :(得分:0)

在基本级别,大多数数据库总是逐行返回结果。这是一种自然的方式来检索数据,而不是一次性加载所有内容意味着,例如,您可以一次处理一行一百万行,而不会使用过多的内存(假设它是一个可以一次处理一行的东西) )。如果你愿意的话,那里有很多数据库包装器库,它们在查询返回时会有变量,它们已经包含了变量中的所有内容。或者自己编写这样的包装函数,这非常简单。在过去,我有各种各样的包装函数,可以将所有内容放入多维数组(使用可选的数组索引),只需抓取一行,只需抓取一个字段等。