2013-03-27 107 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