为什么mysql_real_escape_string中有一个资源?
我很长时间以来一直想知道为什么我实际上需要连接到 SQL 的实时资源才能使用 mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
这个函数不只是转义数据吗?连接有什么意义?我想在没有连接的情况下使用该功能,我正在考虑创建一个没有权限的帐户,这样我就可以做到这一点。
我调用一个包装函数 runSQL(user, statements)
并返回一个包含数据或布尔状态的数组。
我一直在考虑让这个 runSQL(user, statements, argument-and-validation-data)
我只是想要一个理由。我在手册页上找不到“为什么”。
I've been wondering for the longest time WHY I actually need a live resource to SQL connected in order to use mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
Does this function not simply escape the data? What's the point of connecting? I want to use the function without a connection, I'm debating creating an account with no privileges just so I can do this.
I call a wrapper function runSQL(user, statement)
and return an array with either the data or boolean status.
I've been thinking of making this runSQL(user, statement, arguments-and-validation-data)
I just want a reason. I can't find a "why" on the man page.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
正确的转义部分取决于当前连接的字符集,因此它需要知道有关实时连接的信息。
关于您的评论,这里是 PHP 函数使用的 MySQL C API 手册的链接:
http://dev.mysql.com/doc/refman/5.1/en/mysql-real-escape-string.html
它说:
Correct escaping depends in part on the current connection's character set, so it needs to know that information about a live connection.
Re your comment, here's a link to the manual for MySQL's C API, which is used by the PHP function:
http://dev.mysql.com/doc/refman/5.1/en/mysql-real-escape-string.html
It says:
来自 mysql_real_escape_string 的文档 - http://php.net/手册/en/function.mysql-real-escape-string.php
From the documentation for mysql_real_escape_string - http://php.net/manual/en/function.mysql-real-escape-string.php
可以一次打开多个 MySQL 连接。通常您会省略资源参数,因为您在脚本中仅使用 1 个 MySQL 连接,并且默认为最后打开的连接。
It's possible to open multiple MySQL connections at a time. Usually you omit the resource parameter because you only use 1 MySQL connection in your script, and it defaults to the last opened connection.