$abc="aaaaaaaaaa";
mysql_query("insert into test values('$abc')");
为什么变量$abc要加引号?不加引号就出错,变量本身就是个字符串,为什么还要加个引号?多此一举吗?

解决方案 »

  1.   

    因为你的test数据表只有一个字段,是字符型的(CHAR、VCHAR或者TEXT),只接受字符串值。
      

  2.   

    在SQL语法中,字符串就要用引号,这一点跟PHP无关。
      

  3.   

    $abc本身就是个字符串了,其他绝大多数地方需要字符串变量的直接填入变量名就是了,比如函数参数,哪用的着再加个引号,这是为什么呢。
      

  4.   

    Mysql接受php的发送语句时先把传过来的内容转为sql语句。然后按照sql语句执行
    在sql语句中的语法是这样的insert into test values('hello');//注意:字符串要加引号
    如果在PHP中不加单引号,解析出来的sql语句是这样的insert into test values(hello);//显然这里和上边对比是不对的,就是少了引号。
    明白了没?