在MySQL中,QUOTE()mysql_real_escape_string()有什么区别?从MySQL文档中,我了解以下内容:

QUOTE()

  • 写入SQL查询
  • 转义反斜杠,单引号,NUL,CTRL + Z
  • 返回单引号字符串
  • 行为依赖于MySQL服务器的字符集

  • mysql_real_escape_string()
  • 在执行查询之前以C/C++语言编写,允许在提交
  • 之前读取/修改转义的字符串。
  • QUOTE()相比,使用非常不便
  • 转义反斜杠,单引号,NUL,CTRL + Z和双引号,\n和\r
  • 显然添加了更多引号,以使字符易于在日志文件中阅读
  • 行为依赖于MySQL服务器的字符集

  • 忽略日志,转义\n\r字符有用吗?使用这两个功能,客户端/服务器功能效率是否有所不同?如果开发人员希望在将转义的字符串输入查询之前对其进行处理,则mysql_real_escape_string()听起来很有用。但是,QUOTE()是否没有提供最安全,最可靠的转义字符串方法?

    我想知道是否应该对所有语言的所有查询都使用QUOTE(),而忘记使用特定于语言的函数对字符串进行转义。

  • QUOTE()
  • mysql_real_escape_string()
  • String Literals
  • 最佳答案

    似乎QUOTE()打算在构造其他SQL语句的SQL语句中使用。如果您不在SQL中,则应使用mysql_real_escape_string()



    String Literals (MySQL Manual)底部所述。

    关于c++ - MySQL QUOTE()与mysql_real_escape_string()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11642203/

    10-13 06:37