Dengan asumsi bahwa semua nama bidang dalam tabel sama dengan nama input formulir Anda, ini langsung. Anda dapat menggunakan ini:
$query = "UPDATE product SET";
$comma = " ";
foreach($_POST as $key => $val) {
if( ! empty($val)) {
$query .= $comma . $key . " = '" . mysql_real_escape_string(trim($val)) . "'";
$comma = ", ";
}
}
$sql = mysql_query($query);
Agar lebih aman, Anda harus membuat daftar putih parameter yang diterima, yaitu kolom di tabel Anda seperti ini:
$query = "UPDATE product SET";
$comma = " ";
$whitelist = array(
'title',
'rating',
'season',
'brand_id',
'cateogry',
// ...etc
);
foreach($_POST as $key => $val) {
if( ! empty($val) && in_array($key, $whitelist)) {
$query .= $comma . $key . " = '" . mysql_real_escape_string(trim($val)) . "'";
$comma = ", ";
}
}
$sql = mysql_query($query);
Dengan cara itu, kueri Anda hanya dapat berisi parameter yang Anda tetapkan, dan jika ada yang berhasil memasukkan tambahan (misalnya dengan mengubah nama input formulir Anda), itu tidak akan diteruskan ke database Anda.
Saya juga menyarankan Anda berhenti menggunakan Mysql_* , itu tidak digunakan lagi . Anda harus melihat MySQLi atau PDO sebagai alternatif.