我正在使用codeigniter活动记录类。
我在这里尝试的是使用参数get_users
从控制器调用$user_id
方法。
如果$user_id
为null
,则从users表中获取所有条目,否则它应该为我提供与使用get_where()
方法传递的数组匹配的条目。
但是get_where
方法不起作用而get()
方法的目的是使用相同的参数。为什么会这样?感谢。
public function get_users($user_id=null)
{
if($user_id === null){
$q = $this->db->get('users');
}
elseif (is_array($user_id)) {
$q = $this->db->get('users', $user_id);
//$q = $this->db->get_where('users', $user_id); // not working
$result = $q->row_array();
}
return $q->result_array();
}
答案 0 :(得分:2)
您对get_where()
的使用是错误的:
应该是:
$q = $this->db->get_where('users', array('userid_fieldname_in_table'=>$user_id));
第二个参数应该是一个关联数组,其中键是表的字段名,值是要查找的值。
由于您传递数组,最好使用:
$this->db->where_in('filename', $array_of_values());