【问题标题】:When copy & pasting text with apostrophe it is not passing through mysql_real_escape_string()当复制和粘贴带有撇号的文本时,它不会通过 mysql_real_escape_string()
【发布时间】:2014-03-04 17:48:57
【问题描述】:

我添加了mysql_real_escape_string() 并查询文本输入。当用户使用符号编写文本时,它会通过mysql_real_escape_string() 并且工作正常,但是当用户粘贴从其他网站复制的文本时,它不会通过mysql_real_escape_string()。撇号后的文字被截断。

我该如何解决这个问题?

我相信当用户在输入字段中粘贴文本时,它不是 UTF-8 编码。有没有办法在核心 PHP 中处理它而不会出错?如果您在 Pear DB 中有解决方案,请告诉我。

【问题讨论】:

  • 文本是否被截断或有错误?如果有错误,它们是什么?
  • 你真的应该展示更多的代码。 mysql_real_escape_string 应该处理任何需要的转义。
  • 您使用的是an obsolete database API,应该使用modern replacement

标签: php mysql-real-escape-string apostrophe


【解决方案1】:

我假设用户也可以粘贴 URL 编码的文本,所以在 PHP 中使用urldecode 函数。这可能是可能的情况之一。另一种是你说的UTF-8,在这种情况下使用MySQL的CONVERT函数。我希望这有帮助。如果可能,请提供更多详细信息,例如您遇到此问题的文本。

【讨论】:

    猜你喜欢
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    相关资源
    最近更新 更多