Php 从记录集中获取下一行和上一行
我正在尝试使用Codeigniter的活动记录检索数据库中的下一行 型号Php 从记录集中获取下一行和上一行,php,codeigniter,Php,Codeigniter,我正在尝试使用Codeigniter的活动记录检索数据库中的下一行 型号 public function getNextRow() { $this->db->where('id', 1); $this->db->limit(1); $query = $this->db->get('portfolio_shots'); return $query->next_row(); } 控制器 public function tes
public function getNextRow()
{
$this->db->where('id', 1);
$this->db->limit(1);
$query = $this->db->get('portfolio_shots');
return $query->next_row();
}
控制器
public function test()
{
$nxt = $this->Portfolio_model->getNextRow();
echo $nxt->id;
}
输出
为什么我会出错
“正在尝试获取非对象的属性“id”
返回:
结果集的下一行,如果不存在则为NULL:
因此,如果没有下一个结果集,您将得到错误
“正在尝试获取非对象的属性”
因为$nxt
为空且不是结果集,因此不能$nxt->id代码>
您会遇到这种情况,因为您的查询将结果集限制为仅1行(因此不再有行)
无论如何,您可以在模型中处理此问题(取消限制):
在控制器中(如果到达最后一行,则处理案例):
public function getNextRow()
{
$query = $this->db->get('portfolio_shots');
return $query->next_row();
}
public function test()
{
$nxt = $this->Portfolio_model->getNextRow();
if($nxt){
$nxt->id;
}else{
echo 'EOF';
}
}