Pertama, ingat untuk menghindari string yang datang kepada Anda melalui POST, GET, atau REQUEST (baca tentang serangan injeksi SQL jika Anda tidak yakin alasannya).
Sesuatu seperti ini mungkin berhasil:
$semaphore = false;
$query = "UPDATE contacts SET ";
$fields = array('tel','fax','email');
foreach ($fields as $field) {
if (isset($_POST[$field]) and !empty($_POST[$field]) {
$var = mysql_real_escape_string($_POST[$field]);
$query .= uppercase($field) . " = '$var'";
$semaphore = true;
}
}
if ($semaphore) {
$query .= " WHERE Cust_Name = '$cst'";
mysql_query($query);
}
NB :Jangan pernah hanya mengulang array $_POST Anda untuk membuat pernyataan SQL. Lawan dapat menambahkan bidang POST tambahan dan mungkin menyebabkan kerusakan. Looping melalui array input pengguna juga dapat menyebabkan vektor injeksi:nama bidang perlu ditambahkan ke pernyataan, yang berarti mereka adalah vektor potensial. Teknik pencegahan injeksi standar (parameter pernyataan yang disiapkan, fungsi kutipan yang disediakan driver) tidak akan berfungsi untuk pengidentifikasi. Sebagai gantinya, gunakan daftar putih bidang untuk disetel, dan ulangi daftar putih atau teruskan larik input melalui daftar putih.