2013-05-26 96 views
0

我試圖根據一個循環插入多行。
此代碼插入從環路中的第一項只,然後忽略環路
我知道該循環正確地計數爲echo「荷蘭國際集團出的值的其餘部分輸出OKmysqli從一個循環插入多行

$i = 1; 
while ($i <= $count){ 

    foreach($html->find('.markuptag a') as $mystring){ 
     if(preg_match_all("|<a.*(?=href=\"([^\"]*)\")[^>]*>([^<]*)</a>|i", $mystring, $matches)){ 
      $a = $matches[2][0]; 
     } 

     $query = "INSERT INTO mytable (`firstname`, `lastname`, `var_a`) VALUES ('$fistname', '$lastname', '$a')"; 

     $mysqli->query($query);//<< is there a better way? 

    } 
    $i++; 
} 

回答

5

構建的陣列要插入的行,然後一次插入它們。事情是這樣的:

$arr = []; // array() in PHP 5.3 and older 
foreach(...) { 
    ... 
    $arr[] = "('$fistname', '$lastname', '$a')"; 
} 
$mysqli->query("INSERT INTO mytable (`firstname`, `lastname`, `var_a`) VALUES " 
    .implode(",",$arr)); 
+0

怎麼會變成這樣的工作,如果我需要捕獲'$ thisID = $ mysqli-> insert_id'每個改編的? –

+0

嗯...你仍然可以得到這個ID,它應該是插入的最後一行的ID,然後減去'count($ arr)-1'來獲得第一個ID,然後從那裏開始工作。 –