Salve, devo gestire l'inserimento di dati in un db MySQL.

Ho solo un piccolo problema con l'aggiornamento dei dati.
Per esempio devo gestire gli eventi, quando inserisco l'evento la prima volta va bene inserisce testi e immagine.
Quando devo aggiornare l'evento se non inserisco l'immagine non aggiorna nemmeno gli altri campi, mi dice che è andato a buon fine ma non aggiorna nulla.
Di seguito il codice per aggiornare i dati (per l'inserimento è lo stesso cambio solo la stringa sql):
codice:
<?php header("Content-Type: text/html; charset=UTF-8");
$db_host = "localhost"; // Indirizzo di collegamento             
$db_user = "username_dev14";  // Username
$db_password = "password";  // Password            
$db_name ="nomedb";  // Nome Database
$db = mysql_connect($db_host, $db_user, $db_password);
mysql_select_db($db_name, $db);
$dbcnx = @mysql_connect('$db_host', '$db_user', '$db_password');
if(isset($_POST['btn-upload']))
{  
$id=mysql_escape_string($_POST['id']);
$titolo_news = mysql_escape_string($_POST['titolo_news']);
$testo_news= mysql_escape_string($_POST['testo_news']);
$file = rand(1000,100000)."-".$_FILES['file']['name'];
    $file_loc = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
    $folder="uploads/";
    
    // new file size in KB
    $new_size = $file_size/1024;  
    // new file size in KB
    
    // make file name in lower case
    $new_file_name = strtolower($file);
    // make file name in lower case
    
    $final_file=str_replace(' ','-',$new_file_name);


mysql_query("set names 'utf8'");
$sql = "UPDATE $db_name.news SET titolo_news='$titolo_news', testo_news='$testo_news', file='$final_file', type='$file_type', size='$new_size' where id='$id'"; 
$result = mysql_query($sql);
mysql_close();
}
header("Location: news.php");
come posso risolvere questo problema?
Grazie