ci sono due errori.. il primo è che è inutilissimo fare l'update di un camo reinserendoci il vecchio valore.. almeno nel caso di un file è sicuramente troppo lavoro inutile in più...

il secondo è che così non controlli neanche che tipo di file ti viene inviato...

ti conviene fare una cosa del genere:

Codice PHP:
if(isset($_FILES['foto']['tmp_name']))
 {
   
$visualizzabili = array("image/jpeg""image/pjpeg""image/gif""image/png");
   if(!
in_array($_FILES['foto']['type'], $visualizzabili
   {
     echo 
"Il file non è di tipo immagine, o non è un'immagine compatibile con il web.
 (nome file: 
{$_FILES['foto']['tmp_name']} tipo file: {$_FILES['foto']['type']})";
     exit;
    }

  
//fai update di tutto il record
 
}
else 
//fai update solo degli altri campi