为了账号安全,请及时绑定邮箱和手机立即绑定

为什么$sql = 'insert into user(name, age, class) values($name, $age, $class)';这样不行?

为什么$sql = 'insert into user(name, age, class) values($name, $age, $class)';这样不行?

正在回答

2 回答

MySQL里插入字符要用''括起来,这个是数据库问题,跟php无关。。。。

0 回复 有任何疑惑可以回复我~

用双引号。否则会认为只是一个普通的字符串,不会对$name之类的解析

0 回复 有任何疑惑可以回复我~
#1

傲娇的向日葵 提问者

$sql = "insert into user(name, age, class) values('$name', '$age', '$class')"这一种怎么就可以呢?php中的单引号不是说不能提取变量值的吗,那这样写怎么就可以对$name之类的进行解析呢?
2015-02-04 回复 有任何疑惑可以回复我~
#2

Fiona0126 回复 傲娇的向日葵 提问者

在外面是个大的双引号括起来的,所以会对里面的进行解析,会把里面的单引号当成字符串加在变量上~应该跟最外层为主吧~就像你写成$sql = 'insert into user(name, age, class) values("$name", "$age", "$class")';也是不会解析的,因为外层是单引号。。
2015-02-04 回复 有任何疑惑可以回复我~
#3

傲娇的向日葵 提问者

如果是这样的话,那为什么$sql = "insert into user(name, age, class) values($name, $age, $class)";这种不行呢?
2015-02-04 回复 有任何疑惑可以回复我~
#4

Fiona0126 回复 傲娇的向日葵 提问者

这样是可以解析出来的~但是sql插入的时候,字符串得用引号呀~number之类的才不需要引号
2015-02-04 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

为什么$sql = 'insert into user(name, age, class) values($name, $age, $class)';这样不行?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信