2017-01-30 65 views
1

我想更新與foreach循環的幫助,但陣列的只有最後一個值值數組表列中插入每次迭代:陣列的只有最後的值將用於foreach循環的每次迭代

if(is_array($specificdates)){ 

    foreach($specificdates as $date){ 

     $query_specific = "update specificdates set specific_date='".$date."'where fevent_id='".$eventId."' "; 
     if(mysqli_query($link, $query_specific)){ 
      echo "sp success<br>"; 
      echo $date."<br>"; 
     } else { 
      echo "sp fail<br>"; 
     } 
    } 
} 
+2

第一:你是*更新*,而不是*插入*。第二:**使用參數化語句!**。第三:你是否100%確定有相應的fevent_ids的行? –

+0

這將始終以所有具有相同日期的「fevent_ids」結束。 – Kisaragi

+1

您每次通過循環更新同一行,因爲只有'$ date'發生變化,而不是'$ eventId'。 – Barmar

回答

0

這應該是一個評論,但我在這裏的聲譽很低。原諒我

會發生什麼是數據庫中的相同記錄將不斷更新。 event_id的值是相同的。您應該考慮更新數據庫結構或將event_id解析爲數組。這將有助於更新多個記錄,因爲event_id的值將針對每次迭代更改。另外,考慮使用MYSQLI或PDO。此外,逃脫你的輸入字符串或ID作爲攻擊者可以輕鬆利用。

相關問題