条件codeigniter的多个

Zul*_*aid 28 codeigniter

如何将此查询转换为活动记录?

"UPDATE table_user 
 SET email = '$email', last_ip = '$last_ip' 
 where username = '$username' and status = '$status'";
Run Code Online (Sandbox Code Playgroud)

我试图将上面的查询转换为:

$data = array('email' => $email, 'last_ip' => $ip);
$this->db->where('username',$username);
$this->db->update('table_user',$data);
Run Code Online (Sandbox Code Playgroud)

如何使用where clausa状态?

# must i write db->where two times like this?
$this->db->where('username',$username);
$this->db->where('status',$status);
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

$this->db->where('username',$username,'status',$status);
Run Code Online (Sandbox Code Playgroud)

gor*_*ive 70

你可以使用一个数组并传递数组.

Associative array method:
$array = array('name' => $name, 'title' => $title, 'status' => $status);

$this->db->where($array); 

// Produces: WHERE name = 'Joe' AND title = 'boss' AND status = 'active'
Run Code Online (Sandbox Code Playgroud)

或者如果你想做除了比较之外的事情

$array = array('name !=' => $name, 'id <' => $id, 'date >' => $date);

$this->db->where($array);
Run Code Online (Sandbox Code Playgroud)


Isi*_*ode 16

是的,多次调用where()是实现此目的的完美有效方法.

$this->db->where('username',$username);
$this->db->where('status',$status);
Run Code Online (Sandbox Code Playgroud)

http://www.codeigniter.com/user_guide/database/query_builder.html

  • 虽然这是实现这一目标的一种方式。使用键值数组要容易得多 (2认同)