我不是问如何使用该功能。
我知道函数mysqli_real_escape_string
是关于什么或如何使用它,但我想问一下,为什么它的第一个参数需要引用mysqli连接?
以下是一些猜测,但我不知道我是否猜对了:
这个问题令我感到不安,因为我的软件中有多线程,我有一个接受字符串查询作为参数的函数,并将查询推送到另一个线程执行,所以我无法获得MySQLi的实例使用。
转义查询中的字符串答案 0 :(得分:2)
来自http://php.net/manual/de/mysqli.real-escape-string.php: mysqli :: real_escape_string - mysqli_real_escape_string - 转义字符串中的特殊字符以用于SQL语句,考虑连接的当前字符集
所以简而言之:该函数必须知道你的连接使用什么字符集。
答案 1 :(得分:1)
Alternative to mysql_real_escape_string without connecting to DB
这基本上解释了原因。必须知道MySQL连接使用的char集。如果不这样做,则可能会进行多字节SQL注入,具体取决于您的代码。无论如何,除非你编写自己的函数,否则你需要使用MySQL实例。