$placeholders; $replacement-fields; if ($password <> $oldpassword){ $placeholders = $placeholders . "?,"; $replacement-fields = $replacement-fields . "password = '$password',"; } if ($forename <> $oldforename)){ $placeholders = $placeholders . "?,"; $replacement-fields = $replacement-fields . "forename = '$forename',; } if ($lastname.value <> $oldlastname){ $placeholders = $placeholders . "?,"; $replacement-fields = $replacement-fields . "lastname = '$lastname',"; } if ($business <> $oldbusiness){ $placeholders = $placeholders . "?" $replacement-fields = $replacement-fields . "business = '$business',"; } if ($city <> $oldcity){ $placeholders = $placeholders . "?," $replacement-fields = $replacement-fields . "city = '$city',"; } if ($zip <> $oldzip){ $placeholders = $placeholders . "?," <-------------------------- $replacement-fields = $replacement-fields . "zip = '$zip',"; <--- Problem with last , from last field requiring update. Pull that off before using the two variables } $query = "UPDATE users SET $placeholders where user_id = '$user_id'"; $sth = $dbh->prepare($query); $sth->execute($replacement-fields) or die "Unable to execute query: " . $sth->errstr;