> 백엔드 개발 > PHP 튜토리얼 > MYSQL语句疑惑

MYSQL语句疑惑

WBOY
풀어 주다: 2016-06-23 14:13:14
원래의
1117명이 탐색했습니다.

 $sql="select * from news where id = '".$_GET['id']."'";
 $query=mysql_query($sql);
 $rs=mysql_fetch_array($query);


上面那句查询语句为什么这样写会出错$sql="select * from news where id = $_GET['id']";
求解答,新手关于单引号和双引号的区别和为什么要上面那样写,不明白,谢谢!


回复讨论(解决方案)

可以加个{} 
$sql="select * from news where id = {$_GET['id']}";

$sql="select * from news where id = $_GET['id']";

这样写应该没错,提示什么错误??

可以加个{} 
$sql="select * from news where id = {$_GET['id']}";

能解释一下吗?为什么那样不行,而你这样可以呢?

$sql="select * from news where id = $_GET['id']";

这样写应该没错,提示什么错误??

出错:Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\just\edit.php on line 5

这是 php 的约定,没有什么为什么
在双引号中出现关联数组的成员时,必须写作
"$_GET[id]"

"{$_GET['id']}"

这是 php 的约定,没有什么为什么
在双引号中出现关联数组的成员时,必须写作
"$_GET[id]"

"{$_GET['id']}"

嗯,按照你的格式2个都不会报错。
$nc=$_POST[nc];
$sql=mysql_query("select * from tb_user where name='".$nc."'",$conn);

$nc是一个普通变量接受$_POST[nc]赋给的值,那下面为什么看到别人还要这样写呢"select * from tb_user where name='".$nc."'"

echo $sql; 一切就明白了

为什么看到别人还要这样写呢"select * from tb_user where name='".$nc."'"
那是因为他不知道或习惯于他原来用的语言
当然也可能是听信了别人的误导,认为
"select * from tb_user where name='$nc'"
需要寻址而导致效率变低
殊不知,"select * from tb_user where name='". $nc."'"
一样也有个寻址过程呢?

哦,我以为是固定那样写的,这个PHP单双引号和C,C++里搞混了。字符串和单个字符。谢谢大家!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿