Blue_Sea 发表于 2015-12-14 15:59:29

关于 CI 框架数据库操作函数 this->db->where() 的问题

在使用CI 框架数据库操作函数 $this->db->where 出现一个不知道怎么解决的bug
如:
$this->db->where('key',$key);
若是$key的字符串包含 and or 等sql 关键词就会查询不语句,怎么解决:Q
灰常感谢:P

mding 发表于 2015-12-15 21:02:24

$key里没必要用and,or的。$this->db->where()可以调用多次,设置多个条件。多看看文档把

Michael锐生 发表于 2015-12-16 23:10:45

要么就直接写成字符串语句,要么使用键值对的形式,都是可以的,你把你拼装好的SQL语句打印出来就知道该怎么做了

Blue_Sea 发表于 2015-12-17 11:35:06

mding 发表于 2015-12-15 21:02
$key里没必要用and,or的。$this->db->where()可以调用多次,设置多个条件。多看看文档把 ...

sorry,我想表达的不是这个意思,
比如说我要写写一条这样的sql语句
select * from test where key = 'some and some';
那么我是不是要写
$key = 'some and some';
$this->db->where('key',$key);
$this->db->get('test');
这样我在ci3.0 是不对的,我用$this->db->last_query() 打印出来的语句是这样的
select * from test where key = 'some andsome' 注:some and(这个位置会多出一个空格 )some,
这样我就查询不到我想要结果
我尝试了很多次,也都没有解决哎!

Blue_Sea 发表于 2015-12-17 11:35:54

Michael锐生 发表于 2015-12-16 23:10
要么就直接写成字符串语句,要么使用键值对的形式,都是可以的,你把你拼装好的SQL语句打印出来就知道该怎 ...

sorry,我想表达的不是这个意思,
比如说我要写写一条这样的sql语句
select * from test where key = 'some and some';
那么我是不是要写
$key = 'some and some';
$this->db->where('key',$key);
$this->db->get('test');
这样我在ci3.0 是不对的,我用$this->db->last_query() 打印出来的语句是这样的
select * from test where key = 'some andsome' 注:some and(这个位置会多出一个空格 )some,
这样我就查询不到我想要结果
我尝试了很多次,也都没有解决哎!

Blue_Sea 发表于 2015-12-17 11:37:16

Michael锐生 发表于 2015-12-16 23:10
要么就直接写成字符串语句,要么使用键值对的形式,都是可以的,你把你拼装好的SQL语句打印出来就知道该怎 ...

要么就直接写成字符串语句,直接写sql query 是可以的呢,可是很多地方都这样写的代码,改的就太多了:'(

Michael锐生 发表于 2015-12-17 21:43:17

Blue_Sea 发表于 2015-12-17 11:37
要么就直接写成字符串语句,直接写sql query 是可以的呢,可是很多地方都这样写的代码,改的就太多了 ...

你误会我的意思了,我是说where里面的条件写成SQL语句,例如where('(a = 1 or b = 2 and c = 3)')

Aloghli 发表于 2015-12-18 10:42:32

$this->db->where(array('key1'=>$key1,'key2'=>$key2));
页: [1]
查看完整版本: 关于 CI 框架数据库操作函数 this->db->where() 的问题