繁体   English   中英

PDOStatement :: fetch()如何在内部工作?

[英]How does PDOStatement::fetch() work internally?

我到处都读到使用PDOStatement::fetch()意味着无论结果集有多大,都不会耗尽内存。 这就引出了一个问题:行存储在哪里?

PHP必须在从数据库获取结果时将结果存储在某处。 这些结果存储在哪里? 或者,它们是否存储在数据库中,PHP每次都必须查询数据库的下一行?

它类似于读取文件,打开流并逐段读取数据,除了数据库内部结构更复杂之外。

例如,查看$ driver_options PDO :: prepare的描述,因此您甚至可以设置可滚动光标以控制读取方向。

PDOStatement :: fetch将使您从查询中获得下一行。 我不认为它不会用完内存(如果一行包含大量数据),因为您的数据将保存在内存中(了解Buffered和Unbuffered查询 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM