我面临一个小问题。我正在使用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被替换为空格......
请帮助我如何更正此查询。
谢谢等待......
答案 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
中存储了查询的结尾