Php CodeIgniter:调用bool上的成员函数row()
因为我已经从CodeIgniter 2.2.6升级到3.xx,所以我有一个无法解决的问题 模型 控制器 错误 调用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
这可能是
子查询
问题,您可以尝试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;在数据库配置中