查询自动更改

时间:2013-09-11 16:25:49

标签: mysql codeigniter

我面临一个小问题。我正在使用Like运算符运行查询。但问题是codeigniter正在自动替换'%字符。例如,这是我的代码...

$where = "resume_id = '" . $resume_exist[0]['resume_id'] . "' AND finish_date LIKE '%" . $project_year . "%'";

逻辑上,当我为$ project_year选择一些值时,它应该像

一样执行
$where = "resume_id = '123' AND finish_date LIKE '%2013%'";

当我打印查询时,这是正在执行的内容

resume_id = '123' AND finish_date LIKE ' 13%'

你看到%20被替换为空格......

请帮助我如何更正此查询。

谢谢等待......

3 个答案:

答案 0 :(得分:0)

试试这个

$where = "resume_id = '" . $resume_exist[0]['resume_id'] . "' AND DATE_FORMAT(finish_date,'%Y') = '" . $project_year . "'";

答案 1 :(得分:0)

我明白了......实际上%20正被转换为太空角色......

答案 2 :(得分:0)

这是绕过这种情况的替代解决方案。

将您的查询更改为 $where = "resume_id = ? AND finish_date LIKE ?";然后在调用查询函数时,执行以下操作: $this->db->query($query_start.$where.$query_end, array($resume_exist[0]['resume_id'], "%$project_year%"));我假设您在$query_start中存储了查询的开头,并且$query_end中存储了查询的结尾