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())";
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询