Codeigniter - 如果数据库查询未返回任何结果,则执行操作

时间:2011-11-09 15:36:06

标签: mysql codeigniter variables return

如果我的查询没有返回结果,我怎么能返回'找不到数据'的值?

这是我的代码:

    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;
}

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

4 个答案:

答案 0 :(得分:13)

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

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

了解更多in the docs

答案 1 :(得分:3)

  

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

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

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

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

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

答案 2 :(得分:2)

如何为$data提供初始空数组值 只需加上

$data = array();

之前foreach

答案 3 :(得分:1)

<?php

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