A ver, en primer lugar, ese codigo es para insertar no para actuializar, en segundo, intenta lo siguiente para actualizar:
Código PHP:
<?php
//establece una conexión con la base de datos.
$conexion = mysql_connect("localhost","","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("tu_bd",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca.
$id=$_POST['id'];
$codrugs=$_POST['codrugs'];
$name=$_POST['name'];
$Sql="UPDATE archivos SET name='$name', codrugs='$codrugs";
if (!empty($_FILES['archivo']['name'])){
// archivo temporal (ruta y nombre).
$binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ;
// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal)));
// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.
$binario_nombre=$_FILES['archivo']['name'];
$binario_peso=$_FILES['archivo']['size'];
$binario_tipo=$_FILES['archivo']['type'];
//insertamos los datos en la BD.
$Sql .= " archivo_binario='$binario_contenido', archivo_nombre=' $binario_nombre', archivo_peso='$binario_peso', archivo_tipo='$binario_tipo') ";
};
$Sql .=" WHERE id='$id'";
mysql_query($Sql,$conexion) or die("No se pudo insertar los datos en la base de datos.");
header("location: mostrar.php"); // si ha ido todo bien
exit;
?>
Mas o menos con esto deberia funcionar.
Saludos.