gpt4 book ai didi

mysql - 如果表为空,则 CodeIgniter result_array() 出现 bool 错误

转载 作者:行者123 更新时间:2023-11-29 01:11:11 25 4
gpt4 key购买 nike

我的 Carros_model.php 中有这个函数,用于获取最后的插入并将它们显示在仪表板中:

public function select_all($limit = 3)
{
$this->db
->select('marca.nome_marca,'
. 'combustivel.nome_combustivel,'
. 'cambio.descricao_cambio,'
. 'DATE_FORMAT(carro.data_criacao, "%d/%m/%Y") as criacao,'
. 'DATE_FORMAT(carro.data_modificacao, "%d/%m/%Y") as modificacao,'
. 'carro.*')
->from('carro')
->join('marca', 'marca.id = carro.id_marca')
->join('combustivel', 'combustivel.id = carro.id_combustivel')
->join('cambio', 'cambio.id = carro.id_cambio')
->order_by('carro.id', 'DESC')
->limit($limit, 0);

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

foreach ($query->result_array() as $row) {
$data[] = $row;
}

$query->free_result();

return $data;
}

它工作正常,但我发现如果表为空,则错误

Fatal error: Call to a member function result_array() on boolean

被抛出。我该如何解决这个问题?

最佳答案

在尝试获取结果之前,您应该检查查询是否有效/是否有任何行。如果表为空,则查询不会执行任何操作。

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

$data = array();
if($query !== FALSE && $query->num_rows() > 0){
foreach ($query->result_array() as $row) {
$data[] = $row;
}
}

return $data;

附言没有理由在 $query->result_array() 上使用循环,您可以直接返回它。它已经是一个行数组。

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

$data = array();
if($query !== FALSE && $query->num_rows() > 0){
$data = $query->result_array();
}

return $data;

关于mysql - 如果表为空,则 CodeIgniter result_array() 出现 bool 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34028377/

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