往MYSQL里写数据:
这样可以:$rc_num=4;
for($i=0;$i<$rc_num;$i++)
{
$e=$record[$i][0];
$a=$record[$i][1];
$b=$record[$i][2];
$c=$record[$i][3];
$d=$record[$i][4];
$query="insert into t2 values('$e','$a','$b','$c','$d')";
mysql_query($query) or die("ERR");
}
这样却死活不行:

$rc_num=4;
for($i=0;$i<$rc_num;$i++)
{
$query="insert into t2 values('$record[$i][0]','$record[$i][1]','$record[$i][2]','$record[$i][3]','$record[$i][4]')";
mysql_query($query) or die("ERR");
}哪位给讲讲是为什么?

解决方案 »

  1.   

    你为什么要这么写,用serialize转化一下,把数组存储了,不就OK了。
      

  2.   

    还有,你应该print 一下,看看$record[$i][0]有没有值,有可能作用域外呢。
      

  3.   

    $rc_num=4;$conn = mysqli_connect("URL","用户名","密码","数据库名");for($i=0;$i<$rc_num;$i++)
        {
        $e=$record[$i][0];    
        $a=$record[$i][1];    
        $b=$record[$i][2];    
        $c=$record[$i][3];    
        $d=$record[$i][4];   
        $stmt = $conn->prepare("insert into t2 values(?, ?, ?, ?, ?)");
        $stmt -> bind_param("sssss", $e, $a, $b, $c, $d);
        $stmt -> execute();
        $stmt -> close();
        }
      

  4.   

    print确实是有值的。我试过了
      

  5.   

    然后你再用  unserialize转回来,就是用你的array了,很方便的!
      

  6.   

    $query="insert into t2 values('".$record[$i][0]."','".$record[$i][1]."','".$record[$i][2]."','".$record[$i][3]."','".$record[$i][4]."')";
      

  7.   

    $query="insert into t2 values('{$record[$i][0]}','{$record[$i][1]}','{$record[$i][2]}','{$record[$i][3]}','{$record[$i][4]}')";
    看看这个行不?用括号括起来.
      

  8.   

    循环里面查SQL万一查挂了咋办?
    为什么不连个字符串,一次性得insert了?