将数组插入MySQL表

时间:2011-10-24 08:02:31

标签: php mysql arrays

我是php的新手,我正在试图弄清楚如何将下面的数组添加到名为“skus”的MYSQL表中。

每个子阵列都是sku。

子阵列中的每个值都是选项ID。 (即蓝色,绿色,黄色等)

所以,我希望我的桌子看起来像这样。

skuid optionid

sku id是表的主键,当我添加optionid值时会自动增加。

Array
 (
     [0] => Array
         (
             [2] => 27
             [3] => 17
         )

     [1] => Array
         (
             [2] => 28
             [3] => 17
         )

     [2] => Array
         (
             [2] => 27
             [3] => 18
         )

     [3] => Array
         (
             [2] => 28
             [3] => 18
         )

 )

1 个答案:

答案 0 :(得分:-2)

所以你的数组是:

$skus=array(
    [SKU] => Array(
         'option' => 27,
         'option2' => 17
     )
);

创建mySQL表后,您可以使用以下内容对数组进行排序并输入到表中:

$connect = mysql_connect(HOST,USER,PASS) or die(mysql_error());

$delim = ":";

$length = count($skus);

foreach ($skus as $sku => $opt_array) {

    $i = 0;
    $opts = '';

    foreach ($opt_array as $option_id) {
        if ($i == count($opt_array) {
            $opts .= $option_id;
        } else {
            $opts .= $option_id . ",";
        }
        $i++;
    }

    $query = "INSERT INTO `skus` (sku,opt_id,opt_id2) VALUES ('" . $sku . "','" . $opts . "')";

    mysql_query ($query, $connect) or die (mysql_error());
}

正如您所说,您的表中只有两列,您的选项ID必须位于表中的同一字段中。这就是我将$ delim声明为选项ID之间的分隔符的原因。

您对数组中第一个循环的实际查询将是:

INSERT INTO `skus` (sku,opt_id,opt_id2) VALUES ('SKU','27', '17')

等等。

希望这有帮助。