Ci 防sql注入
Ci框架本身提供的数据库操作方法支持防sql注入,但是不易组合成复杂的sql语句,这时需要我们自己书写原生sql,下面是原生sql防sql注入的方法:
-
escape()
使用:$this->db->escape(你的变量);
例:$sql = "SELECT * FROM TABLE WHERE key=" . $this->db->escape($key);
-
escape_like_str() 适用于模糊查询
使用:$this->db->escape_like_str(你的变量);
例:$sql = "SELECT * FROM TABLE WHERE column LIKE '%".$this->db->escape_like_str($search)."%'";
-
?
例:$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));