2013-03-27 59 views
0

我的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) 

我有我的数据库3个字段名叫做ingredientamount,ingredientType和成分名称,它对应于分配给$ rows []的两个数组。所以,如果我有阵列的工作,我的数据库是这样的:

  1. ingredientamount => 34,ingredientType =>厘升,ingredientname =>鸡
  2. ingredientamount => 26,ingredientType =>克,ingredientname =>切达干酪

我的问题是:如何使用我的代码采取$行[](这是一个多维数组),并插入每一行到像我这样的数据库?

感谢您的帮助!

+0

为什么'$计数=计数($ ingredientQTY); $ i <$ count;'而不是'$ i hek2mgl 2013-03-27 18:10:24

+0

@ hek2mgl不确定,会修复。 – Muhambi 2013-03-27 18:11:58

回答

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); 


?> 

所有
INSERT `myTableName` (`ingredientamount`,`ingredientType`,`ingredientname`) VALUES ('34','Centiliter','CHicken'), ('26','Grams','Cheddar Cheese')
这只是草案,没有错误检查或输入控制,实际上是需要的代码后,您会得到$sql这样的事情,但它给出了它如何工作的想法。我相信你可以自己添加所有的休息。

编辑

感谢您的回答,但ingredientamount,ingredientType的价值观,ingredientname是动态的,所以我不认为这会工作?

一点问题都没有。只是改变这一行
$sql = "INSERT `myTableName` (`ingredientamount`,`ingredientType`,`ingredientname`) VALUES ";
这个
$sql = "INSERT `myTableName` (`".implode('`,`',array_keys($rows[0]))."`) VALUES ";

+0

感谢您的回答! – Muhambi 2013-03-27 18:21:47

+1

@Jake,欢迎,但不要忘记做出强有力的输入控制。在raw中使用此代码非常不安全,并且会使您的应用程序容易受到SQL注入的影响。 __这很重要__。祝你好运。 – 2013-03-27 18:24:34