日期:2014-05-17  浏览次数:20450 次

关于PHP操作Mysql查询的引号问题
"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.sql语句的''用来表示常量是个字符串
update user set name='Andy' where id=3
这样是会报错的
update user set name=Andy where id=3
取决于你表设计时 设定的类型

2.代码在不影响功能的情况下 越简单越好。


------解决方案--------------------
还是多看看基础吧,多练练手。
------解决方案--------------------
字符需要加引号。数字无所谓