Onthoud eerst dat je moet ontsnappen aan strings die via POST, GET of REQUEST naar je toe komen (lees meer over SQL-injectie-aanvallen als je niet zeker weet waarom).
Iets als dit zou kunnen werken:
$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 :Loop nooit zomaar door uw $_POST-array om een SQL-instructie te maken. Een tegenstander kan extra POST-velden toevoegen en mogelijk onheil veroorzaken. Het doorlopen van een gebruikersinvoerarray kan ook leiden tot een injectievector:de veldnamen moeten aan de instructie worden toegevoegd, wat betekent dat ze een potentiële vector zijn. Standaard injectiepreventietechnieken (voorbereide instructieparameters, door het stuurprogramma verstrekte aanhalingsfuncties) werken niet voor identifiers. Gebruik in plaats daarvan een witte lijst met velden om in te stellen en loop over de witte lijst of geef de invoerarray door de witte lijst.