从数组中将值插入数据库

时间:2013-03-27 18:06:52

标签: php mysql

我的php看起来像这样:

for ($i = 0, $count = count($ingredientQTY); $i < $count; $i++) {

            $rows[] = array(
                'ingredientamount'         => $ingredientQTY[$i],
                'ingredientType' =>  $measurements[$i],
                'ingredientname'        => $ingredientNAME[$i]
            );
            print_r($rows[$i]);
}

打印出如下数组:

Array ( 
[ingredientamount] => 34 
[ingredientType] => Centiliter 
[ingredientname] => CHicken ) 

Array ( 
[ingredientamount] => 26 
[ingredientType] => Grams 
[ingredientname] => Cheddar Cheese )

我的数据库中有三个字段名称为ingredientamount,ingredientType和ingredientname,它们对应于分配给$ rows []的两个数组。所以,如果我有数组工作,我的数据库将如下所示:

  1. ingredientamount =&gt; 34,ingredientType =&gt; Centiliter,ingredientname =&gt;鸡
  2. ingredientamount =&gt; 26,ingredientType =&gt;克,要素=&gt;切达干酪
  3. 我的问题是:如何使用我的代码获取$ rows [](这是一个多维数组)并将每一行插入像我这样的数据库?

    感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

试试这段代码:

<?php

$rows = array();
$rows[] = array('ingredientamount' => '34', 'ingredientType' => 'Centiliter', 'ingredientname' => 'CHicken' );
$rows[] = array('ingredientamount' => '26', 'ingredientType' => 'Grams', 'ingredientname' => 'Cheddar Cheese' );

$sql = "INSERT `myTableName` (`ingredientamount`,`ingredientType`,`ingredientname`) VALUES ";
$coma = '';
foreach ($rows as $oneRow) {
    $sql .= $coma."('".implode("','",$oneRow)."')";
    $coma = ', ';
}

$result = $db->query($sql);


?>

毕竟,你会在$sql中得到类似的内容 INSERT `myTableName` (`ingredientamount`,`ingredientType`,`ingredientname`) VALUES ('34','Centiliter','CHicken'), ('26','Grams','Cheddar Cheese')
它只是草稿代码,没有错误检查或实际需要的输入控制,但它提供了它如何工作的想法。我相信你可以自己添加所有其余的东西。

修改

  

感谢答案,但是成分,成分类型和成分名称的值是动态的,所以我不认为这会起作用吗?

根本不是问题。只需更改此行
$sql = "INSERT `myTableName` (`ingredientamount`,`ingredientType`,`ingredientname`) VALUES ";
到这个 $sql = "INSERT `myTableName` (`".implode('`,`',array_keys($rows[0]))."`) VALUES ";