有人可以告訴我如何使用codeigniter活動記錄生成以下查詢嗎?Codeigniter活動記錄問題(其中和多個「與」或「)
SELECT * FROM `tbl_admins` WHERE (`email`='[email protected]' OR `uname`='user') AND `upass`='SecretePass';
不寫查詢, 我的意思是通過數組傳遞不同的價值觀...... 或CI的Active Record
謝謝
有人可以告訴我如何使用codeigniter活動記錄生成以下查詢嗎?Codeigniter活動記錄問題(其中和多個「與」或「)
SELECT * FROM `tbl_admins` WHERE (`email`='[email protected]' OR `uname`='user') AND `upass`='SecretePass';
不寫查詢, 我的意思是通過數組傳遞不同的價值觀...... 或CI的Active Record
謝謝
我相信你可以在做到這一點幾種方法。首先,我假設你將一個數組傳遞給模型函數,該數組爲$filters
。
方案一個
$this->db->select('*');
$this->db->from('tbl_admins');
$this->db->where('email', $filters["email"]);
$this->db->or_where('uname', $filters["email"]);
$this->db->where('upass', $filters["password"]);
方案二
$this->db->select('*');
$this->db->from('tbl_admins');
$this->db->where("(email = '$filters["email"]' OR uname = '$filters["email"]') AND upass = '$filters["password"]'");
我沒有測試,所以你可能需要調整變量選項二的一點在哪裏。但是這相當接近你想要的。
這裏是another example的一個類似的Stack Overflow問題。
最後我把它寫這樣......
$conditions = '(`col1`="'.$var1.'" OR `col2`="'.$var1.'") AND `col3`="'.$var2.'"';
$query = $this->db->get_where('table',$conditions);
$result = $query->result();
而且它的工作原理:)
您可以使用group_start()
和group_end()
功能(從活動記錄)進行分組有關,其中在單獨的條款組。下面是語法示例:
$query= $this->db->select('*')
->group_start()
->or_like($likeColumns)
->group_end()
->where($whereColumn, $whereValue)
->get($table);
您是否閱讀了用戶指南並嘗試了一些內容。這是學習的最佳方式。 – TimBrownlaw