CodeIgniter Active Query以意外的方式运行

时间:2013-12-07 12:22:40

标签: php sql codeigniter

我已经使用以下代码块从数据库中获取项目。这是代码:

$db->where("type =", 1);
$db->where("status", 1);
$db->or_where("status", 2);
$db->order_by("id", "DESC");
$dbinfo = $db->get("ads")->result_array();

现在,根据上面的代码,预计会看到类型为1且状态为1的项目,或者是2.但它会获取类型也不是1的项目。这让我感到困惑从清晨开始。我不知道更多的解决方案。

我还使用$db->last_query()打印出生成的CodeIgniter SQL查询,供您查看和检查。

SELECT * FROM (`ads`) WHERE `type` = '1' AND `status` = 1 OR `status` = 2 ORDER BY `id` DESC

2 个答案:

答案 0 :(得分:0)

尝试使用,即添加( )

`type` = '1' AND (`status` = 1 OR `status` = 2)

而不是

`type` = '1' AND `status` = 1 OR `status` = 2

参考:http://ellislab.com/codeigniter/user-guide/database/active_record.html

答案 1 :(得分:0)

$this->db->or_where('id >', $id);
$db->where("type =", 1);
$db->where("status", 1);
$db->or_where("status >", 2);
$db->order_by("id", "DESC");
$dbinfo = $db->get("ads")->result_array();