这是我的问题:
Codeigniter的医生说:
<?php
$array = array('name' => $name, 'title' => $title, 'status' => $status);
$this->db->where($array);
// Produces: WHERE name = 'Joe' AND title = 'boss' AND status = 'active'
?>
我只想将条件传递给我从控制器到模型的where子句:
控制器
<?php
$condition = array('id' => $id_user)
$data['info_user'] = $this->user_model->get_user($condition);
?>
模型
public function get_user($condition)
{
$q = $this
->db
->where($condition)
->get('users');
if($q->num_rows > 0)
{
return $q->row();
}
}
此返回: SELECT * FROM(users
)WHERE 3
IS NULL
但是当我把我的数组直接放在模型中时($
答案 0 :(得分:0)
没有必要传递数组,我甚至不能肯定它可以按照你尝试的方式完成。只需将值本身传递给模型,如下所示。编辑答案以显示多个变量。
控制器:
$data['info_user'] = $this->user_model->get_user($id_user,$user_login);
型号:
public function get_user($id_user,$user_login)
{
$q = $this
->db
->where('id_user',$id_user)
->or_where('user_login',$user_login);
->get('users');
if($q->num_rows == 1)
{
return $q->row();
}
}
作为附注,当您想要数据库中的单个结果时,如检索用户一直检查单个结果而不是&gt;你想确保你只回来一个用户。