Php 试图将列数据从json数组插入mysql

Php 试图将列数据从json数组插入mysql,php,mysql,arrays,Php,Mysql,Arrays,我正在尝试用php将JSON数组(objects?!)插入mysql。当数据以行的形式通过时,我可以处理它!但是,我必须以不同的方式导出数组,现在我无法理解它。在$array=json\u decode($posted,true)之后,我的数组看起来像: ( [0] => Array ( [0] => Allen, test [1] => Anderson, Jayson [2] =

我正在尝试用php将JSON数组(objects?!)插入mysql。当数据以行的形式通过时,我可以处理它!但是,我必须以不同的方式导出数组,现在我无法理解它。在
$array=json\u decode($posted,true)之后,我的数组看起来像:

(
    [0] => Array
        (
            [0] => Allen, test
            [1] => Anderson, Jayson
            [2] => Barrett, Kayla
            [3] => Bennett, Amira
        )

    [1] => Array
        (
            [0] => testallen@gmail.com
            [1] => testjayson@yahoo.com
            [2] => testkayla@gmail.com
            [3] => testamira@hotmail.com
        )
)
如何将其输入到输出以下内容的foreach循环中:

insert into table (name, email) values("Allen, test","testallen@gmail.com")
insert into table (name, email) values("Anderson, Jayson","testjayson@yahoo.com")
... etc?
当数据是“行”格式时,对我来说很容易

          foreach($array as $row)
          {   
$query="insert into table (name, email) values(\"$row[0]\",\"$row[1]\")";
$doit = mysqli_query($con,$query);
          }

但是现在数组不是成行的,我不能完全理解它。

一种方法是循环$row[0]并使用键获取这两个值:

foreach($row[0] as $key => $value) {
    $name = $row[0][$key];
    $email = $row[1][$key];
    $query = "insert into table (name, email) values('$name', '$email')";
    $doit = mysqli_query($con,$query);
}


但是,我强烈建议您在查询中使用而不是字符串变量来防止SQL注入攻击。

您需要使用此处的索引来访问另一个数组中的相应数据(或者两者都使用,对于
for
循环,您可以切换出
foreach
),这样更好吗:
$stmt=$con->prepare(“插入到临时用户电子邮件(名称,电子邮件)值(?,);$stmt->bind_-param(“ss”,“$name,$email”);foreach($row[0]as$key=>$value){$name=$row[0][$key];$email=$row[1][$key];$stmt->execute();$stmt->close();$con->close();
是的,我认为bind_-param()应该在循环中,但我刚刚检查过,这样看起来是正确的。使用预处理语句会更好。它在循环内部和外部都有效。我将绑定参数放在哪里有关系吗?这是一种更有效的方法还是另一种方法?从外部看,它实际上更好,您可以做的事情总是更好。感谢您的倾听和支持使用事先准备好的陈述。我很高兴能帮上忙。