php $sql = "select * from news where id = ".$_GET['id']."; 为什么双引号里要前后加点连接

不加就是错的... 不加就是错的 展开
 我来答
不二进制
2013-08-09 · TA获得超过749个赞
知道小有建树答主
回答量:441
采纳率:50%
帮助的人:321万
展开全部

点是连接字符串的,

<?php
//以下几种方式是一样的效果
echo "abc"."123";
echo "abc123";

$a="c1";
echo "ab".$a."23";//这个就是把变量解析成字符串然后和别的字符串连接在一起
echo "ab{$a}23";//双引号中的变量是能够自动识别的
//(ps:不加上大括号也是可以的,但是不加大括号可能会造成混乱)
// 如果不带大括号数组只能之别一层,而且数组的key不能用引号
// "abc".$_GET['id']."sdfs" 等同于 "abc$_GET[id]sdfs"
// 建议加上大括号,即 "abc{$_GET['id']}sdfs"  
// ps:不能用单引号,因为单引号不能解析变量

?>
百度网友c6a6418
2013-08-09 · TA获得超过351个赞
知道小有建树答主
回答量:450
采纳率:0%
帮助的人:246万
展开全部
楼上已经回答你了,这是基本语法,记住就行了,如果不想加,直接写成这样也是对的:
$sql = "select * from news where id = $_GET['id']";
但是必须保证两头用的是双引号,因为php中双引号里的内容会被解析替换,也就是变量$_GET['id']依然会被看作是变量,如果两头用的是单引号就不能这样写,单引号里的所有内容都被看做是普通字符
追问
".$_GET['id']."   $_GET['id']   都是可以的  "$_GET['id']" 就是不行  '$_GET['id']' 也是不行,这个是传过来的值 ,下面有人说常量后面接变量就需要用点连接,是对的么?"select * from news where id = $_GET['id']" 那这种也解析了,为什么又不用 点连接,还是有点晕
追答
php字符串连接是要用点的,记得C#和js好像使用+,你可以比较着理解下,至于你上面说的
"$_GET['id']" 就是不行 '$_GET['id']' 也是不行
这个不是但从这一部分看的,要从整个sql语句来看,如果你用写成"$_GET['id']",那么sql语句就是:$sql = "select * from news where id = "$_GET['id']";根据php语法,这句话到第二个双引号的时候就结束了,这时应在第二个双引号后面加分号,结束这句话,你后面的$_GET['id']"是不符合语法的
如果你写成'$_GET['id']',那么php就会把第一个单引号和第二个单引号里的内容(也就是'$_GET[')解析成一个字符串,后面的id']'就是多余的,在语法上就不对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
meandmin
2013-08-09 · TA获得超过108个赞
知道答主
回答量:98
采纳率:0%
帮助的人:78万
展开全部
php的语法形式,必须这样,常量和变量需要用“.”来连接
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
happy冰之轩
2013-08-09
知道答主
回答量:15
采纳率:0%
帮助的人:7.7万
展开全部
php语法,后面可以不加
$sql = "select * from news where id = ".$_GET['id'];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sytdeedee
2013-08-09 · TA获得超过442个赞
知道小有建树答主
回答量:694
采纳率:0%
帮助的人:625万
展开全部
.是连接字符串用的,而且那两个点不是在双引号里面,而是外面,你好好看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式