我正在使用 Codeigniter 的 Active Record 类。所以查询看起来像这样:
$query = $this->db->get_where('Table', array('field' => $value));
现在,从第一行获取字段的最快方法是什么? 会
$query->first_row->field
;工作?
谢谢!
虽然速度快固然美好,但错误却不是!确保在尝试使用
($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;
}
$query->first_row()->field
如果您对
num_rows()
返回的值进行空合并,则无需检查 ->row()
。 row()
返回一个对象或 null
。
return $this->db
->get_where('Table', ['field' => $value])
->row()
->field ?? null;