我一直在想最长的时间为什么我真的需要SQL连接的实时资源才能使用mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
这个功能不是简单地逃避数据吗?什么是连接点?我想使用没有连接的功能,我正在辩论创建一个没有权限的帐户,所以我可以这样做。
我调用包装函数runSQL(user, statement)
并返回一个数据或布尔状态的数组。
我一直在考虑制作这个runSQL(user, statement, arguments-and-validation-data)
我只想要一个理由。我无法在手册页上找到“为什么”。
答案 0 :(得分:5)
正确的转义部分取决于当前连接的字符集,因此需要知道有关实时连接的信息。
重新评论,这是PHP函数使用的MySQL C API手册的链接:
http://dev.mysql.com/doc/refman/5.1/en/mysql-real-escape-string.html
它说:
请注意,
mysql
必须是有效的开放式连接。这是必需的,因为转义取决于服务器使用的字符集。
答案 1 :(得分:4)
来自mysql_real_escape_string的文档 - http://php.net/manual/en/function.mysql-real-escape-string.php
转义中的特殊字符 unescaped_string,考虑到 当前的字符集 连接,以便安全放置 它在mysql_query()
中
答案 2 :(得分:0)
一次可以打开多个MySQL连接。通常省略资源参数,因为在脚本中只使用1个MySQL连接,并且它默认为最后打开的连接。