gpt4 book ai didi

php - 是否有任何 CakePHP 函数可以构建并执行查询而不返回结果集

转载 作者:行者123 更新时间:2023-11-29 22:30:09 26 4
gpt4 key购买 nike

我正在使用 CakePHP 2.1.3。我在循环从 find('all') 返回的一大组数组数据时遇到性能问题。 。我想逐行检索查询结果以消除这种昂贵的数组处理。我不希望从 find() 返回数组的结果集或query() 。我想做的事情如下:

$db = $this->Model->getDataSource();

$sql = 'SELECT * FROM my_table';
if($result = $db->execute($sql){
$db->resultSet($result);
while($row = $db->fetchResult()){
// do something with $row
}
}

但是,我不想编写原始查询。有没有Cake函数只根据关联集构建查询并执行而不返回结果集?

[编辑]

我目前正在 Controller 中实现上述脚本。我的模型没有关联,因此我不需要使用 recursive = -1。它是为了 CSV 导出的目的而获取整个表。

Cake 的 find() 有一个内部数组处理,返回的结果集必须再次显式循环。我想通过避免两次大数据的数组处理来优化代码。

相关问题:https://github.com/cakephp/cakephp/issues/6426

最佳答案

首先请确保您只获取真正需要的数据。理想情况下,您可以通过 $this->YourModel->recursive = -1 获得所需的一切通常,性能问题是由于许多连接的数据而引起的。

当您检查完这一点后,我认为循环将是最好的解决方案,您可以通过介于条件之间的 block 来获取所需的数据。虽然我不确定这是否会对你有帮助。

为什么要遍历整个表?您是否进行一些维护,例如填充新字段或更新计数器?也许您可以比尝试获取整个表更好地实现目标。

关于php - 是否有任何 CakePHP 函数可以构建并执行查询而不返回结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29878047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com