为了账号安全,请及时绑定邮箱和手机立即绑定

CodeIgniter:调用 bool 上的成员函数 row()

CodeIgniter:调用 bool 上的成员函数 row()

PHP
千巷猫影 2021-11-19 16:45:55
由于我已从 CodeIgniter 2.2.6 升级到 3.xx,我遇到了无法解决的问题。该模型function get_the_continue_id_pregunta_from_level($level_type, $level){    $this->db->select();    $this->db->from('preguntas');    $this->db->where($level_type, $level);    $this->db->where('language', 2);    $this->db->where("`id` NOT IN (SELECT `id_pregunta` FROM `user_as_preguntas` WHERE user_id =" . $this->session->userdata('id') .  "  )", NULL, FALSE);    $this->db->order_by("id", "ASC");     $this->db->limit(1);    $q = $this->db->get();    if(!$q->num_rows > 0) {        $q = FALSE;    }    return $q;  }控制器$g2 = $this->Qcm->get_the_continue_id_pregunta_from_level('level_1',$row->level_1);$g2 = $g2->row()->id;错误在 bool 上调用成员函数 row()
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

这可能是subquery你可以尝试get_compiled_select如下的问题


function get_the_continue_id_pregunta_from_level($level_type, $level)

    {


        $this->db->select('id_pregunta');

        $this->db->from('user_as_preguntas');

        $this->db->where('user_id', $this->session->userdata('id'));

        $where_clause = $this->db->get_compiled_select();


        $this->db->select();

        $this->db->from('preguntas');

        $this->db->where($level_type, $level);

        $this->db->where('language', 2);

        $this->db->where("`id` NOT IN ($where_clause)", NULL, FALSE);

        $this->db->order_by("id", "ASC"); 

        $this->db->limit(1);

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

        if(!$q->num_rows > 0) {

            $q = FALSE;

        }


        return $q;  

    }


查看完整回答
反对 回复 2021-11-19
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

有2个问题:


首先:当您的查询没有给您任何结果时,您需要处理这种情况:在您的控制器中写入如下内容:


$g2 = $this->Qcm->get_the_continue_id_pregunta_from_level('level_1',$row->level_1);


if($g2){

  $g2 = $g2->row()->id;

}else{

  echo 'no records found'; 

}

现在你不再调用->row()->idfalse 了,没有更多的错误信息,因此错误被处理。


第二:由于您的查询在迁移之前有效,您需要阅读文档并按照升级说明进行操作。很可能你错过了在你的数据库配置文件中更改$active_record = TRUE;为$query_builder = TRUE;


会话库也可能有问题,早期 3.x 版本中记录了几个问题,因此请确保升级到最新版本:3.1.10


查看完整回答
反对 回复 2021-11-19
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信