我有一个问题,一个错误:php中数组的最大大小,$ ID有一个最大值,我不知道如何解决它。 数组大小仅受服务器内存量的限制。我会失去记忆"错误,我无法更改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;
}
}
答案 0 :(得分:2)
这是您传递数据和编写代码的方式。因此,如果有很多连接或更大的功能,您可以将其切换到SP(存储过程)。
您可以通过
检查查询速度 在__construct
$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
这将显示您的代码花了多少时间来处理数据
答案 1 :(得分:1)
您无需编辑php.ini
文件即可增加内存限制。您可以使用ini_set()
:
<?php
ini_set('memory_limit', '256M');
// From here on, the memory limit will be 256M.