CodeIgniter - 只返回一行?

时间:2010-11-25 19:15:50

标签: database codeigniter

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

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

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

这样的东西

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

e.g。 $query->campaign_id;

11 个答案:

答案 0 :(得分:123)

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

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

您可以在此处详细了解:http://www.codeigniter.com/user_guide/database/results.html

答案 1 :(得分:28)

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

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

答案 2 :(得分:13)

要添加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

答案 3 :(得分:6)

为了使代码清楚,您打算获得第一行,CodeIgniter现在允许您使用:

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

检索第一行。

答案 4 :(得分:2)

$this->db->get()->row()->campaign_id;

答案 5 :(得分:2)

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

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

答案 6 :(得分:1)

只改变两行,你实际上得到了你想要的东西。

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

试一试。

答案 7 :(得分:0)

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

use Illuminate\Support\Facades\Storage;

public function deletePublication($publication_id=null)
 {
   if(!empty ($publication_id))
    {

     $publication_path = Db::table('publications')
     ->where('publication_id','=',$publication_id)
     ->value('publication_file');

     Storage::delete($publication_path);

    DB::table('publications')->where('publication_id', '=', $publication_id)- >delete();


        return redirect()
            ->back()
            ->with('flash_message_success','Publication Deleted');
    }
}

odoo-bin -u base -d my_database

答案 8 :(得分:0)

您可以这样做

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

return $q->campaign_id;

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

答案 9 :(得分:0)

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

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

选项 2

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

答案 10 :(得分:-3)

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

}