Codeigniter - 如果数据库查询没有返回结果,则执行操作

Posted

技术标签:

【中文标题】Codeigniter - 如果数据库查询没有返回结果,则执行操作【英文标题】:Codeigniter - Perform action if database query returns no results 【发布时间】:2011-12-25 10:14:31 【问题描述】:

如果我的查询没有返回结果,我如何返回“未找到数据”的值???

这是我的代码:

    function getTerms($letter) 


    $this->db->select('term, definition');
    $this->db->from('glossary');
    $this->db->where(array('letter' => $letter));

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

    foreach ($query->result() as $row) 
        $data[] = array(
            'term' => $row->term,
            'definition' => $row->definition
        );
    

    return $data;

即使查询没有返回给我 php 错误的结果,它当前也会返回 $data 变量。如何在返回 $data 数组之前检查是否有结果。

【问题讨论】:

【参考方案1】:
<?php

    return is_array($data) ? $data : array();

【讨论】:

【参考方案2】:

如何为$data 提供初始空数组值 放个

$data = array();

foreach之前

【讨论】:

【参考方案3】:

即使查询没有返回给我 php 错误的结果,它当前也会返回 $data 变量。

初始化你打算构建的数组是一个好习惯:

$data = array();
// Loop through possible results, adding to $data

如果没有结果,您将返回一个空数组,然后在您的控制器中检查。

这样,至少定义了变量,你不会得到通知。

【讨论】:

【参考方案4】:

只需检查查询是否返回至少一行:

if ($query->num_rows() > 0) 
    // query returned results
 else 
    // query returned no results

阅读更多in the docs

【讨论】:

以上是关于Codeigniter - 如果数据库查询没有返回结果,则执行操作的主要内容,如果未能解决你的问题,请参考以下文章

$this->db->query() 啥都不返回 CodeIgniter

使用CodeIgniter上的重复值查询数据绑定

013.CI4框架CodeIgniter数据库操作之:查询数据库,并让数据以数组的方式返回查询结果

在Codeigniter中运行多个以分号分隔的查询

CI codeigniter 查询 db query 返回 二维数组 返回 第一条记录

Codeigniter 查询没有给出正确的答案