db->where中有英文符号.的问题
本帖最后由 morose 于 2012-7-19 18:21 编辑组成SQL语句如下:
$CI->db->where("title='手机网民达3.88亿 首超台式电脑用户'",NULL,FALSE)->get('news')
预期中的SQL语句应该是这样的:SELECT * FROM (`fd_news`) WHERE `title='手机网民达3`.`88亿` 首超台式电脑用户'
但是CI帮我生成为:SELECT * FROM (`fd_news`) WHERE `fd_title='手机网民达3`.`88亿` 首超台式电脑用户' AND id<>6。他帮我在字段名前加了表前缀。
跟踪源文件到system/database/db_driver.php的_protect_identifiers(1240行),发现是在这里帮我加的前缀,不明白这个函数是干嘛用的,有没有哪位遇到过这种问题?
config下database.php里$db['default']['dbprefix']
$CI->db->where("title='手机网民达3.88亿 首超台式电脑用户'",NULL,FALSE)->get('news')
我很郁闷这样也可以?
$CI->db->where(array("title"=>"手机网民达3.88亿 首超台式电脑用户"))->get('news')
语句有问题?原来我是把where放在变量里面的
$wheres="title='手机网民达3.88亿 首超台式电脑用户'";
$CI->db->where($wheres,NULL,FALSE)->get('news')
这个问题跟表前缀没关系.我试了传统的方法,就是2楼说的key/value方式,这个CI的解析倒是没问题
页:
[1]