有人可以解释为什么我们需要java: while rs.next()
,php: while ($result = mysql_fetch_array)
?编程语言如何从数据库中检索数据。怎么了 ?为什么不透露整个回应?
我不知道,但我真的不能理解这一点,是令人讨厌的方式。
我需要的文档不仅仅是“因为他们这样做”
PS:
$result = mysql_query($query)
不会将查询结果返回给$ result?然后:while ($row = mysql_fetch_array($result)) { do stuff }
??
由于
答案 0 :(得分:1)
看起来这种特殊方法使用了读者。读取器方法与仅将整个结果集同时存入内存相比具有一些优势:
答案 1 :(得分:1)
因为他们这样做。
或者,如果你喜欢它 - 它是如何工作的。
在我们的生活中,有时候,我们无法得到整体的回应 比如,如果你想从井中填充桶,你有通过多次清空桶来填充它。没有其他办法。 并且泵不会有太大的不同 - 无论如何你必须等待,你不能立刻得到“整体反应”。由于源的 stream 性质。
你唯一能做的就是用一些更高级别的替换伪装整个过程,这将在内部执行相同的过程。您可以从愿意为您填写的人那里购买一个装满的桶。
数据库逐个读取表中的行。你不能得到“整体回应”。 但是你可以编写(或使用)一个函数,它将完成所有内部填充并为你提供所需的响应。
答案 2 :(得分:0)
在基本级别,大多数数据库总是逐行返回结果。这是一种自然的方式来检索数据,而不是一次性加载所有内容意味着,例如,您可以一次处理一行一百万行,而不会使用过多的内存(假设它是一个可以一次处理一行的东西) )。如果你愿意的话,那里有很多数据库包装器库,它们在查询返回时会有变量,它们已经包含了变量中的所有内容。或者自己编写这样的包装函数,这非常简单。在过去,我有各种各样的包装函数,可以将所有内容放入多维数组(使用可选的数组索引),只需抓取一行,只需抓取一个字段等。