[英]Can't use CodeIgniter's LIKE()
由于某些错误或缺乏对ODBC连接的了解,我无法使用CodeIgniter的
$this->db->like();
(如果您真的想知道为什么我不能使用它,请在此处查看我的其他主题。)
我该如何更换
$this->db->like("name", 'a', 'after');
与其他一些安全代码?
编辑:
显然,我的描述不清楚。
我知道如何使用“ like()”。 我的问题是,由于其他情况,我无法使用它。 我需要的是“ like()”的替代品。
我知道我可以这样做:
$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注入。
有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%'
检查数据库连接和数据库库是否已加载
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.