【发布时间】:2012-12-20 02:28:10
【问题描述】:
我收到此错误:尝试获取非对象的属性 [来自模型] 当我尝试通过输入一个字符串从数据库中检索 id 时,在这种情况下是 'something'
这是我的模特
function getRoleId($role_name='')
{
$conditions = array('role_name'=> $role_name);
$this->db->where($conditions);
$this->db->select('id');
$query = $this->db->get('roles');
$row = $query->row();
return $row->id;
}
控制器(这里的 $radioRole 是 = 某物),但当它到达模型时,它变成了其他东西。
$radioRole = 'something';
$insertData['role_id'] = $this->user_model->getRoleId($radioRole);
更新
print_r($radioRole);
$insertData['role_id'] = $this->user_model->getRoleId($radioRole);
显示 $radioRole 在本例中为“某物”
但是当它到达 user_model 并且当我执行 print_r 时,它会显示其他内容,“buyer”,它甚至不会显示控制器上完成的 print_r。感觉它被覆盖了:O但我不知道:O
print_r($query)
CI_DB_mysql_result Object ( [conn_id] => Resource id #37 [result_id] => Resource id #64 [result_array] => Array ( ) [result_object] => Array ( ) [current_row] => 0 [num_rows] => 0 [row_data] => )
【问题讨论】:
-
您应该重写您的问题,以便更具体地了解您问的是什么。还显示您在运行代码时收到的确切错误消息。
-
您将不得不显示更多代码。
-
您确定您的查询正确吗?你确定数据库有结果吗?
-
在你的
$query=行之后做一个print_r($query->row());die();,看看你是否得到任何结果。 -
问题是您的查询要么返回 0 个结果,要么返回大量结果(不止一个)。如果是后者,您将需要一个 foreach 循环来访问结果对象。
foreach ($query->result() as $row) { echo $row->id; }
标签: php codeigniter