为什么mysql_real_escape_string中有资源?

Inc*_*ito 2 php mysql sql-injection

我一直想知道为什么我真的需要一个SQL连接的实时资源才能使用 mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )

这个功能不仅仅是逃避数据吗?什么是连接点?我想在没有连接的情况下使用该功能,我正在辩论创建一个没有权限的帐户,所以我可以这样做.

我调用一个包装函数runSQL(user, statement)并返回一个数据或布尔状态的数组.

我一直在想这个 runSQL(user, statement, arguments-and-validation-data)

我只想要一个理由.我在手册页上找不到"为什么".

Bil*_*win 5

正确的转义部分取决于当前连接的字符集,因此需要知道有关实时连接的信息.


重新评论,这是PHP函数使用的MySQL C API手册的链接:

http://dev.mysql.com/doc/refman/5.1/en/mysql-real-escape-string.html

它说:

请注意,mysql必须是有效的开放连接.这是必需的,因为转义取决于服务器使用的字符集.