mysql_escape_string()做什么?

时间:2012-06-30 05:49:51

标签: php jquery mysql

mysql_escape_string()做什么?我正在更新数据库。当我使用$_POST('variable')时 它没有得到更新,但与mysql_escape_string($_POST())一起使用它可以正常工作。我是用ajax来调用它的。

1 个答案:

答案 0 :(得分:6)

mysql_escape_string是PHP mysql扩展函数之一。它转义为作为函数参数提供的字符串。 Escapes 表示将反斜杠(\)添加到特殊字符

  • mysql_escape_string旨在与mysql_query函数一起使用,以便将MySQL查询参数安全地传递给查询。 安全表示,不可能影响和更改所需的查询行为。通过搜索“sql注入”了解更多信息,例如: MDN上的Secure Development Guidelines
  • 使用mysql_escape_string转义的
  • 特殊字符是:空字节(0),换行符(\n),回车符(\r) ,反斜杠(\),单引号('),双引号(")和替代品(SUB\032)。 %_未使用此功能进行转义。
  • 自li 5.3.0起,
  • mysql_escape_string已被弃用。它应该替换为mysql_real_escape_string函数,该函数除了转义字符串外,还考虑了连接的当前字符集。
  • 建议使用MySQLiPDO_MySQL个扩展名的替代方案时,不建议同时使用mysql_escape_stringmysql_real_escape_string

在您的情况下,$_POST('variable')不起作用的最可能原因是它包含一个或多个特殊字符,因此您正在执行的MySQL查询无意中被更改和破坏。您正在使用AJAX调用它,如果您没有处理AJAX错误,则可能无法看到错误消息。