我知道一个标准查询运行一个sql语句,它要求为了安全起见对所有数据进行转义,比如防止sql注入。
而prepared语句在不需要转义数据的地方绑定参数,非常适合多次执行的查询。
但是我想知道在安全性和安全性方面,这三个查询示例之间有什么区别。
我知道第一个带有绑定参数的查询($query)是最安全和最理想的,但是其他两个查询示例($query2和$query3)在使用codeigniter框架时也是安全的吗?
如果我们只使用php,$query3是安全的,因为它引用了数据变量吗?
查询1
$query = "SELECT * FROM users WHERE id = ?";
$bind = array($id);
$query = $this->db->query($query, $bind);
查询2
$query2 = "SELECT * FROM users WHERE id = '" . $this->db->escape_str($id) . "'";
查询3
$query3 = "SELECT * FROM users WHERE id = '" . $id . "' ";
暂无答案!
目前还没有任何答案,快来回答吧!