标准SQL查询与PHP和Codeigniter框架中的准备好的语句

时间:2018-07-19 04:35:17

标签: php mysql codeigniter mysqli

我知道标准查询会运行一条SQL语句,该语句要求为了安全起见而转义所有数据,例如防止SQL注入。

Prepared语句将参数绑定到不需要转义数据的位置,是多次执行查询的理想选择。

但是我想知道在安全性和安全性上,这三个查询示例之间有什么区别。

我知道带有绑定参数的第一个查询( $ query )是最安全,最理想的使用方式,但其他两个查询示例( $ query2 和< strong> $ 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 . "' ";  

0 个答案:

没有答案