我將舉例說明用戶配置文件編輯頁面。內部有12個不同的領域(年齡,性別,吸菸,飲酒......)。所有這些字段都在單個表中。當用戶保存數據時,即使只有一個字段被更改,mysql update語句也會用於設置所有數據。用戶更新配置文件和mysql更新
UPDATE profile SET age=22, smoke=1, drink=1, ...
但我想知道這是否是一種正確的方法。首先檢查哪個字段已更改,並且僅爲此字段設置數據是否更好?要做到這一點,我會把所有當前值放在隱藏輸入中。它看起來像這樣:
<input type="hidden" name="oldAge" value="<?php echo $age; ?>" />
<input type="text" name="age" value="<?php echo $age; ?>" />
<input type="hidden" name="oldGender" value="<?php echo $gender; ?>" />
<input type="text" name="gender" value="<?php echo $gender; ?>" />
<?php
//...
if($_POST['oldAge']!=$_POST['age']){
$updateQuery .= ", age=$_POST['age']";
}
if($_POST['oldGender']!=$_POST['gender']){
$updateQuery .= ", gender=$_POST['gender']";
}
//...
?>
通過這種方式設置更少的數據,這可以使MySQL更好的性能。這是否有意義,還是隻是不必要的複雜的事情?
您是對的,請檢查哪些字段已被更改並僅設置那些字段以保存不必要的更新。 –
這個問題可能是重複的[http://stackoverflow.com/questions/459669](http://stackoverflow.com/questions/459669) –
是的你是對的,我錯過了,我aplogy。 – user1324762