标准sql查询与php和codeigniter框架中的prepared语句

gkn4icbw  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(161)

我知道一个标准查询运行一个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 . "' ";

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题