\是mysql的转义字符,可以用\\代替select * from company where username="\\name"; 

解决方案 »

  1.   

    我这里做的是用户管理 如果用户注册的是name 但是他在登录框里填 \name
    他也能正常登录。这里怎么处理呢
      

  2.   

    网页做特殊字符转换,比如php可以用addslashes函数。
      

  3.   

    我的意思是这样的 我做的jsp 页面登录之后 或者字符串,然后查询。
    select * from user where username="peng";//peng 是从登录页面传过来的字符串。
    现在是数据库里有一个叫peng的用户。 如果用户输入 peng 能查到。但是现在用户输入\peng
    也是同样能登录。应该用户输入\peng是查不到数据的。这里是我对用户输入再作判断吗?
    但是我直接在mysql里执行 select * from user where username="\peng"; 它查出来的结果就是peng的结果。
      

  4.   

    你的mysql版本是多少,我的是5.0.19就没有这个问题,你换个版本试试看
    mysql> use bookshop;
    Database changed
    mysql> select name from user where name='tom';
    +------+
    | name |
    +------+
    | tom  |
    +------+
    1 row in set (0.01 sec)mysql> select name from user where name='\tom';
    Empty set (0.00 sec)mysql> select version();
    +-----------+
    | version() |
    +-----------+
    | 5.0.19-nt |
    +-----------+
    1 row in set (0.02 sec)
      

  5.   

    \是mysql的特殊字符,对可能输入特殊字符的文本框都要做特别处理,php可以用addslashes函数处理一下传递过来的变量就可以了,jsp自己查查手册吧!
    很多地方都需要用这种函数处理,比如字符串中含有',",等,如果不处理肯定就要出问题,呵呵!