Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter:调用bool上的成员函数row()_Php_Codeigniter - Fatal编程技术网

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

Php CodeIgniter:调用bool上的成员函数row(),php,codeigniter,Php,Codeigniter,因为我已经从CodeIgniter 2.2.6升级到3.xx,所以我有一个无法解决的问题 模型 控制器 错误 调用bool上的成员函数row() 这可能是子查询问题,您可以尝试get\u compiled\u select如下 function get_the_continue_id_pregunta_from_level($level_type, $level) { $this->db->select('id_pregunta'); $th

因为我已经从CodeIgniter 2.2.6升级到3.xx,所以我有一个无法解决的问题

模型 控制器 错误 调用bool上的成员函数row()


这可能是
子查询
问题,您可以尝试
get\u compiled\u 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;  
    }

这可能是
子查询
问题,您可以尝试
get\u compiled\u 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;  
    }
有两个问题:

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

$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'; 
}
现在您不再在false上调用
->row()->id
,不再有错误消息,因此错误被处理

Second:由于您的查询在迁移之前就已经完成了,因此您需要阅读文档并按照升级说明进行操作。很可能您在数据库配置文件中遗漏了从
$active\u record=TRUE
$query\u builder=TRUE

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

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

$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'; 
}
现在您不再在false上调用
->row()->id
,不再有错误消息,因此错误被处理

Second:由于您的查询在迁移之前就已经完成了,因此您需要阅读文档并按照升级说明进行操作。很可能您在数据库配置文件中遗漏了从
$active\u record=TRUE
$query\u builder=TRUE


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

查找codeigniter文档以及更改的内容。出于某种原因,$g2变量是一个布尔值,可能是false,因为get_the_continue_id_pregunta_from_级别抛出一条错误消息:message:调用boolIt上的成员函数row(),因为查询返回false。不能在false上调用->行()->id。编写一个if子句来处理错误的情况。问题出在查询中的某个地方,它不再工作了,请检查您是否有$query\u builder=TRUE;在数据库中,查找codeigniter文档以及更改的内容。出于某种原因,$g2变量是一个布尔值,可能是false,因为get_the_continue_id_pregunta_from_级别抛出一条错误消息:message:调用boolIt上的成员函数row(),因为查询返回false。不能在false上调用->行()->id。编写一个if子句来处理错误的情况。问题出在查询中的某个地方,它不再工作了,请检查您是否有$query\u builder=TRUE;在数据库配置中