如果使用到了LIKE查询,当然容易出问题,因为它们可以用来作相似查询的通配符。在设计上,本来就应该保证输入用户名时进行必要的约束和验证。对于这样特殊符号一律限止,只限字母和数字。有空多看下设计方面的书。

解决方案 »

  1.   

    取出来的时候%是通配符了,你可以把%用[]包起来使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用: 
    WHERE ColumnA LIKE '%5/%%' ESCAPE '/'在上述 LIKE 子句中,前导和结尾百分号 (%) 解释为通配符,而斜杠 (/) 之后的百分号解释为字符 %。在方括号 ([ ]) 中只包含通配符本身。要搜索破折号 (-) 而不是用它指定搜索范围,请将破折号指定为方括号内的第一个字符: 
    WHERE ColumnA LIKE '9[-]5'
      

  2.   

    如果使用到了LIKE查询,当然容易出问题,因为它们可以用来作相似查询的通配符。在设计上,本来就应该保证输入用户名时进行必要的约束和验证。对于这样特殊符号一律限止,只限字母和数字。
    ---------------------------------------------------------------------------也想過不讓輸,可是人家說一定要讓輸,這些符號有用著...沒有辦法,只好想轉義存..可是怎麼轉呢,沒有轉過啊,誰給點例子看下啊.