gpt4 book ai didi

php - 如何使用 codeigniter 优化 activerecords?

转载 作者:行者123 更新时间:2023-12-02 23:29:20 24 4
gpt4 key购买 nike

我遇到一个错误问题:php 中数组的最大大小,$ids 有最大值,但我不知道如何解决它。数组大小仅受服务器拥有的内存量的限制。我会出现内存不足”错误,并且无法更改 php.ini我需要优化这个功能,有什么想法吗?

function delete_ScormByIdPlataforma($idPlatforma)
{
if ($this->getIdScormVarsToDelete($idPlatforma) != 0)
{
$ids = $this->getIdScormVarsToDelete($idPlatforma);
$this->db->where_in('ID_dispatch', $ids);
$this->db->delete('scormvars');
}//else
//log_message('error', 'No se han encontrado scorms a borrar'.$this->db->_error_message().' - '.$this->db->last_query());
}



function getIdScormVarsToDelete($idPlataforma)
{
$this->db->select('s.ID_dispatch');
$this->db->from('scormvars as s');
$this->db->join('dispatch as d', 's.ID_dispatch = d.ID_dispatch', 'INNER');
$this->db->join('licencias as l', 'd.ID_licencia = l.ID_licencia','INNER');
$this->db->where('l.id_plataforma', $idPlataforma);

$query = $this->db->get();

if($query)
{
if($query->num_rows()>0){
foreach ($query->result() as $fila){
$data[] = $fila->ID_dispatch;
}
return array_unique($data);
}
}
else
{
//log_message('error', 'No se han encontrado Dispatch a borrar'.$this->db->_error_message().' - '.$this->db->last_query());
return 0;
}
}

最佳答案

这取决于您传递数据的方式和编写代码的方式。因此,如果有很多连接或一些更大的函数,您可以将其切换到 SP(存储过程)。

您可以通过以下方式检查查询速度

__construct 中启用 Profiler

$this->output->enable_profiler(TRUE);

在你的代码中

$this->benchmark->mark('my_mark_start'); # my_mark_start can set any name with _start/ generate_start
$data['some_name'] = $this->model_name->modelFunctionName();
$this->benchmark->mark('my_mark_end'); # generate_end

这将显示您的代码处理数据所花费的时间

关于php - 如何使用 codeigniter 优化 activerecords?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35084014/

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