我有一個帶有動態(用戶確定)行數的html表單,每個行都有幾個輸入;我試圖實現一個MySQL查詢,它會將行 插入到數據庫表中,或多或少地按行進行行(儘管此表的外部還有一個$ _POSTing值,我也將其添加到INSERT中)。從php foreach插入多行
我檢索這些值是這樣的:
<?php
if (isset($_POST['submit'])) {
$lineItems = array();
foreach ($_POST['date'] as $i => $value) {
$customer = $_POST['customer'][$i]; // this value is from *outside* the line items table
$date = $_POST['date'][$i];
$time = $_POST['time'][$i];
$fee = $_POST['fee'][$i];
$lineItems[] = "('$customer', '$date', '$time', '$fee')";
// I realize the query should be outside the loop, but what I'm trying to do is something like this (pseudo-code):
$query = "INSERT INTO Line_Items (CUSTOMER, DATE, TIME, FEE) VALUES ". implode(", ", $lineItems)
. "ON DUPLICATE KEY UPDATE
CUSTOMER = VALUES(CUSTOMER),
DATE = VALUES(DATE),
TIME = VALUES(TIME),
FEE = VALUES(FEE)
";
}
}
?>
與此查詢 - 內或外循環 - 我只插入從輸入的最後一個行值;有人可以請示例如何構造一個查詢插入多個行項目和適當的查詢如何 ?非常感謝。
請你寫之前** **任何更多SQL接口代碼,您必須閱讀[適當的SQL轉義](http://bobby-tables.com/php)以避免嚴重的[SQL注入漏洞](http://bobby-tables.com/)你在這裏。 **從不**將'$ _POST'數據直接放入查詢中。 – tadman
它似乎工作正常,如果你把插入語句的循環之外... – avisheks
謝謝@tadman。我只是想把這件事情聯繫起來,我向你保證我會重新考慮注射預防。 – user1613163