-1

我有一个名为的数组$works,如下所示:

[
    'type' => [1, 5],
    'description' => [2, 6],
    'hours' => [3, 7],
    'amount' => [4, 8]
]

我需要在两次迭代中将所有值发送到数据库(MySQL)。就像是:

INSERT INTO `works` (`type`, `description`, `hours`, `amount`) VALUES (works[type][0], works[decsription][0], works[hours][0], works[amount][0]);

INSERT INTO `works` (`type`, `description`, `hours`, `amount`) VALUES (works[type][1], works[description][1], works[hours][1], works[amount][1]);
4

2 回答 2

1
for($i=0; $i<count($works['type']); $i++) {
    $query = "INSERT INTO `works` (`type`, `decsripion`, `hours`, `amount`) VALUES ('{works[type][$i]}', '{works[description][$i]}', '{works[hours][$i]}', '{works[amount][$i]}')";
    mysql_query($query);
}

前提是您已经连接并选择了一个数据库。有更好的方法可以做到这一点,但这取决于您使用的框架。例如,您可能希望在尝试将这些值插入数据库之前对其进行转义。

于 2016-06-07T02:52:13.623 回答
0

嗨,你可以试试这个。

<?php
$works = array('type'=>array(1,5),'description'=>array(2,6),'hours'=>array(3,7),'amount'=>array(4,8));
    $insert_query = 'INSERT INTO works(type,description,hours,amount) values ';
    for($i=0; $i<count($works['type']); $i++) {
                $insert_query .= "('".$works['type'][$i]."','".$works['description'][$i]."','".$works['hours'][$i]."','".$works['amount'][$i]."')," ;

    }

    $query = rtrim($insert_query, ',');
    //echo $query;
    if(!mysqli_query($con,$query)){
        die('Error: ' . mysqli_error($con));
    }else{
        echo "record added";
    }

如果你想看的话,我用过bulk insert into你可以。根据你的问题,我假设所有手段等都是相同的,所以我用来计算步骤echo queryqueryarraytypedescriptionlength$works['type']for loop

于 2016-06-07T03:54:52.627 回答