"update user set name='$_POST[newname][code=php]' where id=$_SESSION[id]";

"update user set name=$_POST[newname] where id=$_SESSION[id]";
有什么区别??(多了和少了一组单引号)这是一个更新用户名的MySql语句,我让程序输出了一下$sqlstr,发现在上面两种情况的输出结果都是一样的但是:今天发现,没有那组单引号的时候,更新名字,只有在新名字是数字的时候好用,如果是英文或者汉字什么的都不好用,而有了单引号之后就数字汉字英文都好用了,不知道问什么,求解答还有,我看同学写的代码,有的时候更复杂,好像还在对应位置加了{}之类的东西,不知道这个有什么用。。在下菜鸟一只。。求各位大大解答一下。。不胜感谢。。

解决方案 »

  1.   

    1.sql语句的''用来表示常量是个字符串
    update user set name='Andy' where id=3
    这样是会报错的
    update user set name=Andy where id=3
    取决于你表设计时 设定的类型2.代码在不影响功能的情况下 越简单越好。
      

  2.   


    多谢!
    我没怎么看过书,一直是边学边做。。所以见笑啦~问一下,还有什么别的类似于字符类型要加单引号的地方吗,比如说XX类型要加XXX什么的?