没有的!不过我的理解是如果手工输入SQL语句,应该知道哪些字符需要转义,也就是说需要手工添加转义符!

解决方案 »

  1.   

    有些语言,比如php,就提供了一些函数,使你的查询语句符合你的要求,比如mysql_escape_string
      

  2.   

    QUOTE(str)
        引用一个字符串,并返回一个结果,该结果可作为一个适当转义过的数据值在一个 SQL 语句中使用。字符串被单引号包围着返回,并且在该字符串中每个单引号(“'”)、反斜线符号(“\”)、ASCII NUL 和 Control-Z 出现的地方,在该字符之前均被加上了一个反斜线。如果参数是 NULL,那么结果值是一个没有单引号包围的单词 “NULL”。 QUOTE 函数在 MySQL 4.0.3 中被加入。mysql> SELECT QUOTE("Don't");
            -> 'Don\'t!'
    mysql> SELECT QUOTE(NULL);
            -> NULL
      

  3.   

    mysql的C api和php里面都有mysql_escape_string函数,这对于录入二进制数据是很重要的。
      

  4.   

    呵呵,犬犬,又教了我一招!不过,SELECT QUOTE("Don"t");还是会出现问题,因此在需要转义的字符串是未知的情况下,好像还是无法完全用QUOTE解决,是吗?
      

  5.   

    嘻嘻,
    是的,
    更详细地字符转义方式请查看http://shuixin13.jahee.com/gb2312/mysql/06-1.html#Literals
      

  6.   

    总觉得QUOTE主要还是用于转换数据库里面查询出来的值,录入数据的时候派不了太大用场,还是得用escape,比如说输入的串里面含有结束符(\0),QUOTE 就无法处理了。