【问题标题】:Codeigniter SQL query return single value [duplicate]Codeigniter SQL查询返回单个值[重复]
【发布时间】:2017-07-27 11:43:09
【问题描述】:

我正在使用 CodeIgniter,我想从表中获取最高 ID。这是我通过模型中的一个功能实现的。但我没有得到作为返回值的单个值的结果。

代码:

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

如何更改在控制器中调用此函数时获得单个值的代码?

【问题讨论】:

  • max 如果不对查询进行分组,则返回单个值。

标签: php sql codeigniter


【解决方案1】:

下面的代码对我来说很好。

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

【讨论】:

    【解决方案2】:

    像这样在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;
            }
        }
    

    【讨论】:

      【解决方案3】:

      您只需使用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;
              }
          }
      

      【讨论】:

        【解决方案4】:

        试试这个:

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

        我推荐使用 CI (EDITED)

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

        【讨论】:

        • 当我尝试 MikeSoutos 解决方案时,出现消息:发生数据库错误错误编号:1096 未使用表 SELECT * 文件名:C:/..../application/models/Model.php 行号: 825
        • 嗨!推荐的解决方案?我编辑帖子以适应推荐的解决方案。
        猜你喜欢
        • 1970-01-01
        • 2018-05-07
        • 2018-03-15
        • 1970-01-01
        • 2013-06-24
        • 1970-01-01
        • 2011-12-21
        • 2011-12-27
        • 1970-01-01
        相关资源
        最近更新 更多