简体   繁体   English

Codeigniter SQL查询返回单个值

[英]Codeigniter SQL query return single value

I am working with CodeIgniter and I want to get the highest ID out of a table. 我正在使用CodeIgniter,我希望从表中获得最高的ID。 This i realize with a function in the Model. 这我在模型中实现了一个功能。 But I don't get the result, which is a single value, as value back. 但我没有得到结果,这是一个单一的价值,作为价值回来。

Code: 码:

 function get_highest_answer_id(){
   $this->db->query('SELECT MAX(id) AS answerid FROM pa_it_answer;');
    if ($query = $this->db->get()) {
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return array();
        }
    } else {
        return FALSE;
    }
}

How do I have to Change the code that when I call this function in my Controller I get the single value? 我如何更改代码,当我在我的控制器中调用此函数时,我得到单个值?

Below code is works fine for me. 下面的代码对我来说很好。

$MAXID = 0;
$row = $this->db->query('SELECT MAX(id) AS answerid FROM pa_it_answer')->row();
if ($row) {
    $MAXID = $row->answerid; 
}

Try this: 尝试这个:

function get_highest_answer_id(){
   $this->db->query('SELECT MAX(id) AS answerid FROM pa_it_answer;');
    if ($query = $this->db->get()) {
        if ($query->num_rows() > 0) {
            return $query->row(); // here!!!
        } else {
            return array();
        }
    } else {
        return FALSE;
    }
}

I recommended use the querybuilder of CI (EDITED) 我建议使用CI的查询构建器 (EDITED)

$this->db->select_max('id', 'answerid');
$query = $this->db->get('pa_it_answer');

var_dump( $query );
var_dump( $query->answerid );
die();

Change your query in codeigniter like this 像这样在codeigniter中更改您的查询

function get_highest_answer_id(){
     $this->db->select('MAX(id) AS answerid');
        if ($query = $this->db->get('pa_it_answer')) {
            if ($query->num_rows() > 0) {
                return $query->result();
            } else {
                return array();
            }
        } else {
            return FALSE;
        }
    }

You just have to simplify your method with row() 你只需要使用row()简化你的方法

function get_highest_answer_id(){
        $record = $this->db->query('SELECT MAX(id) AS answerid FROM pa_it_answer;')->row();
        if ($record) {
            return $record->answerid;
        } 
        else {
            return FALSE;
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM