$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']";
求解答,新手关于单引号和双引号的区别和为什么要上面那样写,不明白,谢谢!

解决方案 »

  1.   

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

  2.   

    $sql="select * from news where id = $_GET['id']";这样写应该没错,提示什么错误??
      

  3.   


    出错: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
      

  4.   

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

    "{$_GET['id']}"
      

  5.   


    嗯,按照你的格式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."'"
      

  6.   

    echo $sql; 一切就明白了
      

  7.   

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

  8.   

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