Hay miles de maneras y todo depende del dato y del tipo de input que sea (donde este, que haga y quien lo use).
Lo primero para hacerle es ver la posibilidad de que no llegue la variable por post (o por donde lo pases), para lo que harías algo como:
Código PHP:
$var = isset( $_POST["var"] ) ? $_POST["var"] : '';
A su vez, si por ejemplo, el dato es un int podes forzarlo a este tipo:
Código PHP:
$var = isset( $_POST["var"] ) ? intval( $_POST["var"] ) : 0;
Y así podes ampliarlo cuanto tu necesidad lo pida aplicando a su vez seguridad (sql injection, xss,
Bufer Overflows, etc)...personalmente tengo varias funciones que hacen estas tareas y las aplico dependiendo del caso.
Con el tema del insert/update lo que hago es simple, un sql para ambos casos en un unico file grabar.php (a modo de ejemplo) y ejecuto un insert o update dependiendo el caso (también podes hacer un llamado insert/update), lo cual sería así:
Código PHP:
$sql = "SET campo1='$var1', campo2='$var2' "; #var1 y var2 las habrás levantado del formulario
if( !empty($codigo) ){ #Codigo es el ID que pasarás junto a los datos y será 0 si es un registro nuevo
$sql = "UPDATE tabla $sql WHERE codigo='$codigo'";
}else{
$sql = "INSERT INTO tabla $sql ";
}
#Ahora solo ejecutar
mysql_query( $sql );
Es básico, pero efectivo.