我现在要做 mysql的like 模糊查询 select ... like '%变量%'。
这个变量 可能含有各种特殊字符,比如反斜杠“\”。
我看到对于反斜杠的模糊查询需要前面加两个反斜杠转换为“\\\”才可以正确查询。
我使用mysql_real_escape_string就不行了。
用c语言如何处理这种情况呢?
如果有两个或多个反斜杠呢?

解决方案 »

  1.   

    我知道需要特殊处理,所以我用mysql_real_escape_string这个函数处理下了。可是对于反斜杠 就不能用了。
      

  2.   

    那你把他去掉。mysql_real_escape_string 是防SQL注入用的。将'"\n\r......等特殊字符转义。
      

  3.   

    没办法只能特殊处理,首先,你的C语句中要对\转义一下,然后MYSQL还要在转义一下。
      

  4.   

    你可以用  like  的  escape  关键字可以指定转义字符,默认是\  指定为其他的就不会对\n等转义。同时mysql_real_escape_string 是你处理sql  注入时它会转义一些特殊字符,如果你用预处理,那么可以避免实用这个函数。万一like  模糊匹配不好,就用正则REGEXP来做。