0
我正在使用一個有50多個字段的表單。我完成了插入,選擇和刪除記錄,但我與更新記錄混淆,因爲如果用戶正在更新一個或兩個字段中的50個,那麼更新查詢應該使用最少的字段。但是我怎麼能檢測到這個字段被編輯,這個字段需要在服務器端更新?有人請幫我準確的解決方案。如何檢測表單編輯,以便只更新數據庫?
我正在使用一個有50多個字段的表單。我完成了插入,選擇和刪除記錄,但我與更新記錄混淆,因爲如果用戶正在更新一個或兩個字段中的50個,那麼更新查詢應該使用最少的字段。但是我怎麼能檢測到這個字段被編輯,這個字段需要在服務器端更新?有人請幫我準確的解決方案。如何檢測表單編輯,以便只更新數據庫?
要獲得精確的解決方案需要更多的數據(在我看來);不過,我相信你所要求的可以通過使用變量構建更新語句並遍歷$ _POST數據(建議未經測試)來完成。
//assumes control names on form = field names in db
$strSQL = "UPDATE tblWhatever SET ";
$fieldsAndvalues = "";
$markers = "";
foreach($_POST as $key => $value)
{
if ($value <> "") {
//code to check for $value's data type and set $marker to what is
//appropriate (e.g., string set $markers to "'", if numeric set to "", etc.)
$fieldsAndvalues .= $key . "=" . $marker . $value . $marker . ","
}
}
//Remove final comma (,), build final SQL statment, execute statement
if ($fieldsAndvalues <> "") {
$strSQL .= substr($fieldsAndvalues,0,-1) . " WHERE <whatever criteria is used>";
//execute query with whatever error checking and such you require
}
「如果用戶正在更新50箇中的一個或兩個字段,那麼更新查詢應該使用最少的字段」 - 爲什麼? – Quentin
向我們展示您到目前爲止所嘗試的內容 –
更新聲明通常不是那種徵稅。儘管您提出了一個有趣的問題,但您不應該擔心是否從已更新或未更新的內容動態構建語句。主要取決於DB的類型(SQL或NoSQL) – DDelgro