$this->db->where()的子句写法问题
本帖最后由 ichou 于 2012-11-18 02:21 编辑先看手册:http://codeigniter.org.cn/user_guide/database/active_record.html
4.自定义字符串:
你可以手动的编写子句:
$where = "name='Joe' AND status='boss' OR status='active'";
$this->db->where($where);
不知道大家去验证过没,我测试的时候蛋疼的发现它生成的SQL语句居然是:
SELECT * FROM (`my_table`) WHERE `name='Joe'` AND status='boss' OR status='active'
呃 ,第一个条件居然被视为一个字段名保护起来了 =.=
然后如果在name后加个空格 这样写:
$where = "name ='Joe' AND status='boss' OR status='active'";
$this->db->where($where);
得到的SQL是
SELECT * FROM (`my_table`) WHERE `name` ='Joe' AND status='boss' OR status='active'
为什么会有这么奇葩的事儿呢?是手册错了还是我犯2了?
求围观 求解释
4.自定义字符串:
下方下方的下方:
$this->db->where() 接受可选的第三个参数。如果你将它设置为 FALSE, CodeIgniter 将不会为你那些包含反勾号的字段名或表名提供保护。 是的 我看到了 但是那个分段 看上去真不像是补充说明的说 很容易误解啊
页:
[1]