小编pei*_*iam的帖子

Zend_Db:fetchAll()或query()/ fetch()用于大量记录

假设我有

$db is an instance of Zend_Db_Adapter_Abstract and
$sql = 'SELECT blah blah FROM table' will return a huge number of records.
Run Code Online (Sandbox Code Playgroud)

有两个代码片段来处理返回的数据,如下所示.

// Code fragment 1 (let's call it C1).
$results = $db->fetchAll($sql);
foreach ($results as $row) {
    // Process $row
}

// Code fragment 2 (let's call it C2).
$stmt = $db->query($sql);
while ($row = $stmt->fetch()) {
    // Process $row
}
Run Code Online (Sandbox Code Playgroud)

我的理解是C1会将所有返回的数据加载到$ results.因此,大量数据被加载到PHP内存中.以下是我的问题.

  1. C2是否将所有数据加载到PHP内存中,或者像prepare/execute一样逐个处理?
  2. 假设没有其他选择,C1或C2是更好的选择吗?

谢谢!

php zend-framework zend-db

10
推荐指数
2
解决办法
2万
查看次数

如何检测Zend Framework 2应用程序是否在控制台或HTTP上下文中运行?

我正在编写一个模块来执行某些任务,具体取决于应用程序是在控制台还是HTTP上下文中运行.有没有办法在加载模块时检测到这个?

例如,我尝试使用Module.php类执行此操作.

namespace MyModule;

use ...

class Module
{
    public function init(ModuleManager $mm)
    {
        if (Console context) {
            // do something
        } else {
            // do something with HTTP
        }
    } 
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

php zend-framework2

6
推荐指数
2
解决办法
3069
查看次数

标签 统计

php ×2

zend-db ×1

zend-framework ×1

zend-framework2 ×1