2013-03-27 2 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) 

내가 ingredientamount, ingredientType라는 내 데이터베이스에서 세 fieldName에있는, 그리고 성분 이름은 $ rows []에 할당 된 두 배열에 해당합니다. 나는 배열 작업이 있다면 그래서, 내 데이터베이스는 다음과 같이 보일 것이다 :

  1. ingredientamount => 34, ingredientType => Centiliter, ingredientname => 닭
  2. ingredientamount => 26 ingredientType => 그램, ingredientname => 체다 치즈

내 질문은 : $ rows [] (다차원 배열)를 취하여 각 행을 내 것과 같은 데이터베이스에 삽입하려면 어떻게해야합니까?

감사합니다.

+0

왜'$ 카운트 = 수 ($ ingredientQTY)에
$sql = "INSERT 'myTableName' ('ingredientamount','ingredientType','ingredientname') VALUES ";
을 변경; $ i hek2mgl

+0

@ hek2mgl 확실하지 않습니다. 수정 될 것입니다. – Muhambi

답변

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` (`".implode('`,`',array_keys($rows[0]))."`) VALUES ";

+0

답해 주셔서 감사합니다! – Muhambi

+1

@ Jake, 환영합니다. 그러나 강력한 입력 제어를하는 것을 잊지 마십시오. 이 코드를 원시 코드로 사용하는 것은 안전하지 않으므로 SQL 인젝션에 취약해질 수 있습니다. __그건 중요해__. 행운을 빕니다. –