从查询的第一行获取字段

问题描述 投票:0回答:3

我正在使用 Codeigniter 的 Active Record 类。所以查询看起来像这样:

$query = $this->db->get_where('Table', array('field' => $value));

现在,从第一行获取字段的最快方法是什么? 会

$query->first_row->field
;工作?

谢谢!

php codeigniter
3个回答
10
投票

虽然速度快固然美好,但错误却不是!确保在尝试使用

($query->num_rows() > 0)

访问结果之前始终检查结果

最快(最简洁)的方式:

$query = $this->db->get_where('Table', array('field' => $value));

echo(($query->num_rows() > 0) ? $query->first_row()->field : 'No Results');

本质上与:

相同
$query = $this->db->get_where('Table', array('field' => $value));
if($query->num_rows() > 0)
{
    echo $query->first_row()->field;
}
else
{
    echo 'No Results';
}

对于多个字段使用:

$query = $this->db->get_where('Table', array('field' => $value));

if ($query->num_rows() > 0)
{
    $row = $query->row(); 

    echo $row->title;
    echo $row->name;
    echo $row->body;
}

8
投票
$query->first_row()->field

0
投票

如果您对

num_rows()
返回的值进行空合并,则无需检查
->row()
row()
返回一个对象或
null

return $this->db
    ->get_where('Table', ['field' => $value])
    ->row()
    ->field ?? null;
© www.soinside.com 2019 - 2024. All rights reserved.