请问下面的程序那里错了呢?是关于数组字符连接成字符串的问题。谢谢!
<?php session_start();include("conn/conn.php");
if($submit=="提交"){
$array1=array();//定义数组~~~用array()这个函数
$array2=array();
$i=0;
while(list($name,$value)=each($_POST)){
if($value!="提交"){
$array1[$i]=$nama;
$array2[$i]=$value;
}
$i++;
}
$str=implode(",",$array1);//将数组变成字符串
$str1=implode(",",$array2);
$str1="".$str1."";
$query=MySQL_query("insert into tb_user($str)values($str1)",$id);
if($query==true){
echo "<script>alert('数据添加成功');history.back();</script>";
}
else{
echo "<script>alert('数据添加失败');history.back();</script>";
}
}
?>

解决方案 »

  1.   

    implode只对一维数组有用,你的array1和array2是多维肯定执行不了SQL;
    建议在做调试的时候把你的SQL语句echo出来,这样才容易查找问题所在
      

  2.   

    explode是将字符串分割成数组!
      

  3.   

    echo $str; //这个一般不会错
    echo $str1; // 问题将出在这里按规则,字符类型的值要用单引号括起,而你没有
    即便数据类型都是数值型的,如果某个控件值为空将出现类似“12,,3”,这也是违规的$str1 = "'" . implode("','", $array2) ."'";