为什么转义SQL值需要打开连接?

时间:2013-10-15 15:06:29

标签: php mysqli

为了清楚起见,任何人都可以解释为什么mysqli_real_escape_string必须阅读:

$query = mysqli_real_escape_string($conn,"SELECT * FROM tbl");

而不只是:

$query = mysqli_real_escape_string("SELECT * FROM tbl");

感谢您的帮助!

1 个答案:

答案 0 :(得分:10)

由于字符集编码。

如果没有$connmysqli_real_escape_string()将无法检测连接使用的字符编码,并会盲目地尝试逃避常见的危险字符 - 留下一些有潜在危险的charset黑客可以通过。

真实(未模仿)准备好的陈述甚至更好(或者更安全,如您所愿),因为他们采用 字符编码的 代替连接的