我在PHP中使用MYSQLI函数很长一段时间。
我总是问我同样的事情:
为什么函数mysqli_real_escape_string
需要第一个参数中的连接?没有意义!这只是一个改编引号的功能。
你知道为什么吗?
答案 0 :(得分:5)
mysqli_real_escape_string
必须知道连接的字符集,以便它可以正确地转义特殊字符。如果你使用多字节集,那么mysqli必须知道。否则为sql injection is possibile。有关详细信息,请参阅this answer。
但是,不要使用它!使用Prepared Statements!