从表单提交的数据
<form action="get.php" method="post" name="f1" >
<input type="text" name="t1" value="" size="40" maxlength="40"/>
<input type="submit" name="s1" value="提交"/>
 </form>echo "用户名:".$_POST['t1']."<br>";
这里的$_POST[]中的name值不加单引号会有Notice错误
$sql="insert into message (id,text)values ('','$_POST[text]') ";
但是这条sql语句中的$_POST[]中的name值加了单引号也会有错误,到底是为什么......

解决方案 »

  1.   

    第一个$_POST['t1']索引key不写单双引号,会优先搜素是否存在静态变量t1值作为key$sql="insert into message (id,text)values ('','{$_POST[text]}')";
      

  2.   


    请看置顶的php基础编程常见问题汇总
      

  3.   

    $_POST['t1']
    数组里面 如果是字符串索引 如果不加引号 ze会进行额外的处理,并给出notice提示, 效率会降低 这个手册上有
    你那个sql应该这样:
    $sql="insert into message (id,text)values ('','{$_POST['text']}') ";
      

  4.   

    关联数组的键名,必须要用引号括起!所以SQL语句中的$_POST[text]必须写成$_POST['text']
    俩方法:
    1、用字符串连接符“.”拼接字符串$sql="insert into message(id,text) values('','" . $_POST['text'] . "')";2、使用{}确定变量的位置:$sql="insert into message(id,text) values('','{$_POST['text']}')";
      

  5.   

    把 $_POST提出来,字符串是字符串,变量是变量好一点,一目了然!~~~~~
      

  6.   

    直接Insert 的时候把array放在values也行?
      

  7.   

    $sql="insert into message (id,text)values ('','$_POST[text]') ";这第二个分明应该是
    $sql="insert into message(id,text) values('','$_POST['t1']')";你传过来的是这个啊name="t1" 怎么写成text了呢。
      

  8.   

    #7楼说的对,单引号对变量是不解析的,在单引号中的内容就是字符串,所以insert语句中写'$_POST[text]'是不正确的。#8楼的意思应该是传入的变量是什么,添加到数据库中的值就应该是什么,避免写错,否则结果必然不对。所以建议试试$sql = "insert into message(id,text) values('','{$_POST['t1']}')";