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]的外面为啥要加单引号?加了单引号,岂不是不解释变量了吗?按照这个逻辑,应该加双引号才对啊。
展开
 我来答
有缘十月重逢
2011-01-26 · TA获得超过271个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:117万
展开全部
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())";
abiao5555
2011-01-26 · TA获得超过591个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:488万
展开全部
单引号内的都是字符串
用双引号可以在字符串内嵌变量
数组的键值最好加上引号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wudipaopao
2011-01-26 · TA获得超过797个赞
知道小有建树答主
回答量:1486
采纳率:0%
帮助的人:792万
展开全部
数组的键值最好加上引号
不然 如果变量是数字就麻烦了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式