
PHP的一个问题。
请看一条SQL语句:$sql="insertintospeak(user,title,content,date)"."values('$_POST[name]','$_P...
请看一条SQL语句:
$sql="insert into speak(user,title,content,date)".
"values('$_POST[name]','$_POST[title]','$_POST[content]',now())";
问题一、'$_POST[name]'中括号里的name没有加单引号,是否受外面单引号影响?
问题二、既然是传值,传变量的值,$_POST[name]的外面为啥要加单引号?加了单引号,岂不是不解释变量了吗?按照这个逻辑,应该加双引号才对啊。 展开
$sql="insert into speak(user,title,content,date)".
"values('$_POST[name]','$_POST[title]','$_POST[content]',now())";
问题一、'$_POST[name]'中括号里的name没有加单引号,是否受外面单引号影响?
问题二、既然是传值,传变量的值,$_POST[name]的外面为啥要加单引号?加了单引号,岂不是不解释变量了吗?按照这个逻辑,应该加双引号才对啊。 展开
3个回答
展开全部
PHP中的字符串中,允许使用变量。
上面这条SQL的原型是:$sql="insert into speak(user,title,content,date)".
"values('" . $_POST[name] . "','" . $_POST[title] . "','" . $_POST[content] . "',now())";
也就是说:SQL语句中,字段的值,VALUES部份,应该用单引号括着两边。
如:insert into speak (user,titile) VALUES('用户名','标题');
如果你理解了这个SQL语句,你的问题一和问题二就不是这样理解了。
因为$_POST[name]是个变量,它和外面的单引号是没有关系的。但是在这里,$_POST[name]和$_POST['name']是两个不同的变量。
举例:
$name = "user";
$_POST[name]就等于$_POST['user'],提取的是user的值。
但$_POST['name'],就只是提取表单name的值。
为了形成良好的PHP书写格式,你的SQL语句应该这样写。
$strName = $_POST['name'];
$strTitle = $_POST['title'];
$strContent = $_POST['content'];
$sql="insert into speak(user,title,content,date)".
"values('$strName','$strTitle','$strContent',now())";
上面这条SQL的原型是:$sql="insert into speak(user,title,content,date)".
"values('" . $_POST[name] . "','" . $_POST[title] . "','" . $_POST[content] . "',now())";
也就是说:SQL语句中,字段的值,VALUES部份,应该用单引号括着两边。
如:insert into speak (user,titile) VALUES('用户名','标题');
如果你理解了这个SQL语句,你的问题一和问题二就不是这样理解了。
因为$_POST[name]是个变量,它和外面的单引号是没有关系的。但是在这里,$_POST[name]和$_POST['name']是两个不同的变量。
举例:
$name = "user";
$_POST[name]就等于$_POST['user'],提取的是user的值。
但$_POST['name'],就只是提取表单name的值。
为了形成良好的PHP书写格式,你的SQL语句应该这样写。
$strName = $_POST['name'];
$strTitle = $_POST['title'];
$strContent = $_POST['content'];
$sql="insert into speak(user,title,content,date)".
"values('$strName','$strTitle','$strContent',now())";

2025-08-27 广告
tpsiv弹性体扎开博泰塑料科技(上海 )有限公司 专注于特种功能扎带行业,在耐高温扎带,耐低温扎带,耐酸碱扎带,耐溶剂扎带,阻燃扎带,铁氟龙扎带,金属可探测扎带等方面做了深入、系统的基础及应用的研发,可以与业界同仁分享合作,共同进步。欢迎...
点击进入详情页
本回答由开博泰提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询