求教一个php问题
$sql="INSERTINTOmessage(id,user,title,content,lastdate)VALUE('','$_POST[user]'"."'$_P...
$sql = "INSERT INTO message (id, user, title, content, lastdate) VALUE ('', '$_POST[user]'" ."'$_POST[title]', '$_POST[content]', now())";
以上这句话中为什么把'$_POST[content]'改成'$_POST['content']',就是在content外加上一对单引号就报错呢?错误显示:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\wamp\www\bbs\add.php on line 9
但是这句,if (isset($_POST['submit']))就必须在submit外加单引号,不然就报错,
到底为什么呢,好奇怪,求高人一定告诉我,我分不够了,但我很急,一心想学好php,谢谢 展开
以上这句话中为什么把'$_POST[content]'改成'$_POST['content']',就是在content外加上一对单引号就报错呢?错误显示:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\wamp\www\bbs\add.php on line 9
但是这句,if (isset($_POST['submit']))就必须在submit外加单引号,不然就报错,
到底为什么呢,好奇怪,求高人一定告诉我,我分不够了,但我很急,一心想学好php,谢谢 展开
6个回答
展开全部
你这个需要去看看关于php字符窜的基础教程,就是双引号和单引号的区别。
简单来说,php中双引号和单引号都可以使用来表示中间的是字符窜,也可以混合使用。但是混合的时候一定要注意,php只会考虑两个相同引号之间的字符为一个字符窜。
就你这个例子来说 ,'$_POST['content']', 在$_POST[两边已经有了两个单引号,php就自动认为$_POST[为一个字符窜,并分割开来。然后剩下的content就什么都不是,然后 ] 又是一个单独的字符窜。就导致了那个error。
简单来说,php中双引号和单引号都可以使用来表示中间的是字符窜,也可以混合使用。但是混合的时候一定要注意,php只会考虑两个相同引号之间的字符为一个字符窜。
就你这个例子来说 ,'$_POST['content']', 在$_POST[两边已经有了两个单引号,php就自动认为$_POST[为一个字符窜,并分割开来。然后剩下的content就什么都不是,然后 ] 又是一个单独的字符窜。就导致了那个error。
展开全部
你可以在外面加一个花括号{}。也就是{$_POST['content']}。这样就不会有错了。
完整代码:$sql = "INSERT INTO message (id, user, title, content, lastdate) VALUE ('', '{$_POST['user']}' .'{$_POST['title']}', '{$_POST['content']}', now())";
复制过去,不会出错的
望采纳!!
完整代码:$sql = "INSERT INTO message (id, user, title, content, lastdate) VALUE ('', '{$_POST['user']}' .'{$_POST['title']}', '{$_POST['content']}', now())";
复制过去,不会出错的
望采纳!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$_POST[submit]两边要加上双括号,submit必需加上单括号 ,然后再加上两个点,即
".$_POST['content']."
最终为
$sql = "INSERT INTO message (id, user, title, content, lastdate) VALUE ('', “$_POST[user]'" ."'$_POST[title]', ".$_POST['content'].", now())";
顺便说一句,最好不要在数居库里直接写入post,容易注入
".$_POST['content']."
最终为
$sql = "INSERT INTO message (id, user, title, content, lastdate) VALUE ('', “$_POST[user]'" ."'$_POST[title]', ".$_POST['content'].", now())";
顺便说一句,最好不要在数居库里直接写入post,容易注入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'$_POST['content']' 这个 因为电脑不跟人脑一样 所以$_post 前'和conten前的'成一对 即'$_POST[' 这个是一对 content’]' 这俩单引号是一对 所以错了 在''之间加单引号要用\来转义 即'$_POST[\'content\']'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在单引号前加上\转义
百度一下Php的转义就可以了解了
百度一下Php的转义就可以了解了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
告诉你一个比较简单的办法,就是先在数据库里面写sql语句,确定sql语句没有问题之后,再在php里面写sql字符串,而且要注意字符和变量的连接符"."问题,而且还得看你用的什么数据库,了解语法很重要
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询