CodeIgniter:如何使用WHERE子句和OR子句

tar*_*eld 24 mysql select codeigniter where-clause

我使用以下代码从带有Code Igniter webapp的MySQL数据库中进行选择:

$query = $this->db->get_where('mytable',array('id'=>10));
Run Code Online (Sandbox Code Playgroud)

这很棒!但我想使用CI库编写以下MySQL语句?

SELECT * FROM `mytable` WHERE `id`='10' OR `field`='value'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢!

小智 42

$where = "name='Joe' AND status='boss' OR status='active'";

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

  • 虽然我迟到了3/4,但在你的where子句被定义后你仍然会执行以下命令... $ this-> db-> get("tbl_name"); (2认同)

Roo*_*ood 30

您可以使用or_where() - 例如来自CI文档的示例:

$this->db->where('name !=', $name);

$this->db->or_where('id >', $id); 

// Produces: WHERE name != 'Joe' OR id > 50
Run Code Online (Sandbox Code Playgroud)

  • 我相信你可能误解了这一点.在我看来,旧方法orwhere()已被弃用,而不是新方法or_where(). (6认同)

Was*_*oui 12

你可以用这个:

$this->db->select('*');
$this->db->from('mytable');
$this->db->where(name,'Joe');
$bind = array('boss', 'active');
$this->db->where_in('status', $bind);
Run Code Online (Sandbox Code Playgroud)


Rah*_*ham 6

使用主动记录方法or_where:

$this->db->select("*")
->from("table_name")
->where("first", $first)
->or_where("second", $second);
Run Code Online (Sandbox Code Playgroud)