【问题标题】:CodeIgniter - return only one row?CodeIgniter - 只返回一行?
【发布时间】:2011-05-15 21:06:46
【问题描述】:

目前,如果我正在对只返回一行的数据库进行查询,请使用:

...query stuff...
$query = $this->db->get();
$ret = $query->result();
return $ret[0]->campaign_id;

是否有返回第一行的 CodeIgniter 函数? 类似$query->row();

或者更好的是,如果只有一排, 直接使用查询对象。

例如$query->campaign_id;

【问题讨论】:

    标签: database codeigniter


    【解决方案1】:

    您刚刚回答了自己的问题 :) 你可以这样做:

    $query = $this->db->get();
    $ret = $query->row();
    return $ret->campaign_id;
    

    您可以在此处阅读更多信息:http://www.codeigniter.com/user_guide/database/results.html

    【讨论】:

    • $row = json_decode($query->row(), true); 最终使用--> $row = $query->result_array()[0];
    【解决方案2】:

    这是一种更好的方法,因为它可以为您提供单行结果:

    $this->db->query("Your query")->row()->campaign_id;
    

    【讨论】:

    • 我们如何像三元运算符一样使用它? (query)?(getresult) : (null)
    【解决方案3】:

    要补充 Alisson 所说的内容,您可以检查是否返回了一行。

    // Query stuff ...
    $query = $this->db->get();
    
    if ($query->num_rows() > 0)
    {
        $row = $query->row(); 
        return $row->campaign_id;
    }
    
    return null; // or whatever value you want to return for no rows found
    

    【讨论】:

      【解决方案4】:

      为了让代码清楚地表明您打算获取第一行,CodeIgniter 现在允许您使用:

      if ($query->num_rows() > 0) {
          return $query->first_row();
      }
      

      检索第一行。

      【讨论】:

        【解决方案5】:
        $this->db->get()->row()->campaign_id;
        

        【讨论】:

          【解决方案6】:

          只改变两行,你就会得到你想要的。

          $query = $this->db->get();
          $ret = $query->row();
          return $ret->campaign_id;
          

          试试看。

          【讨论】:

            【解决方案7】:

            如果您只需要使用 codeigniter 查询从数据库表中获取一条记录,那么您可以使用 row() 来完成。我们可以在 codeigniter 中轻松地从数据库中返回一行。

            $data = $this->db->get("items")->row();
            

            【讨论】:

              【解决方案8】:

              我们可以在查询中得到一个使用限制

              $query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset);
               $query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset);
              

              【讨论】:

                【解决方案9】:

                你可以这样做

                $q  = $this->db->get()->row();
                
                return $q->campaign_id;
                

                文档: http://www.codeigniter.com/user_guide/database/results.html

                【讨论】:

                • 第一个答案很好,但请查看Editing Help 以进行正确的代码编辑:)
                【解决方案10】:

                选项 1 $限制 = 1 $offset = 0

                $query = $this->db->get_where('items', array('id' => $id), $limit, $offset);
                

                选项 2

                $this->db->get("items")->row();
                

                【讨论】:

                  【解决方案11】:

                  类receipt_model扩展CI_Model {

                     public function index(){
                  
                        $this->db->select('*');
                  
                        $this->db->from('donor_details');
                  
                        $this->db->order_by('donor_id','desc');
                  
                        $query=$this->db->get();
                  
                        $row=$query->row();
                  
                        return $row;
                   }
                  

                  }

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2014-12-14
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-10-20
                    • 1970-01-01
                    • 2020-03-24
                    • 1970-01-01
                    相关资源
                    最近更新 更多