为了清楚起见,任何人都可以解释为什么mysqli_real_escape_string
必须阅读:
$query = mysqli_real_escape_string($conn,"SELECT * FROM tbl");
而不只是:
$query = mysqli_real_escape_string("SELECT * FROM tbl");
感谢您的帮助!
答案 0 :(得分:10)
由于字符集编码。
如果没有$conn
,mysqli_real_escape_string()
将无法检测连接使用的字符编码,并会盲目地尝试逃避常见的危险字符 - 留下一些有潜在危险的charset黑客可以通过。
真实(未模仿)准备好的陈述甚至更好(或者更安全,如您所愿),因为他们采用 字符编码的 代替连接的。