select * from table where uname='张三'            错误
select * from table where uname=123               正确服务器给我返回一个错误,告诉我执行的这个语句有错, 他为什么给我加上了\。
select * from table where uname=\'张三\'

解决方案 »

  1.   

    字段的信息 varchar(60)   utf8_general_ci 
      

  2.   

    忘记说了 是PHP + mysql
      

  3.   

     $sql= $_POST['sql'];
     print  $sql;
     $result=$db->query($sql); 
    就是这个。。没有其他了 sql 是文本框的名字 我是在文本框中输入SQL 语句
      

  4.   

     print $sql;   //把这句贴出来。外层改用双引号或里面转义。
      

  5.   

    print @sql 的结果就是 select * from table where uname=\'张三\'我改不了$db,别人写的
      

  6.   

    搜索的时候为了安全性进行addcslashes了吧
    搜索语句改一下 
    类似 $sql  = "select * from table where uname=".addcslashes($name);
    改为 $sql  = "select * from table where uname='".addcslashes($name)."'";
      

  7.   

    需要文本框中输入的完整SQL 语句没办法用10楼的方法吧
      

  8.   

    如果不是自己加了\有可能是magic_quotes_gpc()功能打开了。
      

  9.   

    可以先检测get_magic_quotes_gpc()如果返回1就是打开了。
    set_magic_quotes_runtime(0)可以关了
      

  10.   

    $sql = "select * from table where uname=\'张三\'";
    echo stripslashes($sql);
      

  11.   

    当前页面,整个网站起作用要到php.ini中设置
      

  12.   

    好像可以改变php.ini设置。我也不太清楚
      

  13.   

    不要吓我啊 还是先GOOGLE 下 。。
      

  14.   

    谢谢 大家指路    GOOGLE 到了