无法使用CodeIgniter的LIKE()

时间:2016-02-23 12:50:17

标签: php database codeigniter codeigniter-3

由于某些错误或我在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注入。

1 个答案:

答案 0 :(得分:1)

有3种方法可供遵循。

  1. <强>后

    $this->db->like('name', 'a', 'after'); 
    // Output: WHERE name LIKE 'a%'
    
  2. <强>前

    $this->db->like('name', 'a', 'before'); 
    // Output: WHERE name LIKE '%a'
    
  3. <强>两个

    $this->db->like('name', 'a', 'both'); 
    // Output: WHERE name LIKE '%a%'
    
  4.   

    检查您加载的数据库连接和数据库库

    $this->db->like() in Codeigniter