由于某些错误或我在ODBC连接中缺乏知识,我无法使用CodeIgniter&#39>
$this->db->like();
(如果你真的想知道我为什么不能使用它,请参阅我的另一个帖子here。)
如何替换
$this->db->like("name", 'a', 'after');
还有其他一些安全的代码吗?
修改
显然,我的描述中并不清楚。
我知道如何使用"喜欢()"。我的问题是我可以因为其他情况而使用它。我需要的是替换"喜欢()"。
我知道我可以这样做:
$this->db->where("name LIKE 'a%'", NULL, FALSE);
但这不安全。
编辑2:
也许这可行:
$user_input = "a";
//Escape input
$escaped_input = $this->db->escape($user_input);
//add a %-sign to the end of the escaped input
$like_input = substr_replace($escaped_input, "%", -1, 0)
$this->db->where("name LIKE " . $like_input, NULL, FALSE);
但我觉得它不会阻止SQL注入。
答案 0 :(得分:1)
有3种方法可供遵循。
<强>后强>
$this->db->like('name', 'a', 'after');
// Output: WHERE name LIKE 'a%'
<强>前强>
$this->db->like('name', 'a', 'before');
// Output: WHERE name LIKE '%a'
<强>两个强>
$this->db->like('name', 'a', 'both');
// Output: WHERE name LIKE '%a%'
检查您加载的数据库连接和数据库库