NULL y 0 (MySQL)

Hola amig@s, necesito una ayuda... desde PHP estoy programando consultas de actualización y cuando en un campo fecha paso NULL la consulta escribe en la tabla 0000-00-00
Igual me pasa cuando en un campo numérico paso NULL, la consulta escribe 0.

Necesito que se ponga NULL y no ceros, ¿cómo lo hago?

Gracias por adelantado
Hola:

En la base de datos, debes especificar que se ponga lo que quieras en lugar de NULL. Por ejemplo:

CREATE TABLE usuario (
  usuario_id INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  nombre VARCHAR(100) NOT NULL,
  edad SMALLINT(3) NOT NULL [COLOR="#FF0000"]DEFAULT 0[/COLOR],
  titulo VARCHAR(50) NOT NULL [COLOR="#FF0000"]DEFAULT 'Sin título'[/COLOR]
);
Skaparate, gracias una vez más..
Las tablas ya están creadas, la base de datos se creó a partir de una migración de base de datos access...
¿se puede hacer esto que me dices con las tablas creadas? ¿puede ser con phpmyadmin?

Gracias
Sí, se puede hacer con PHPMyAdmin.
Así:

if($_POST['FechaCompra']=="") {
  $fo2= 'NULL'; // NULL entre comillas (simples o dobles)
}

$updatesql = "update TABLA1 set FechaCompra=$fo2 where Referencia='$r'"; // Este no va entre comillas

Ahora, esto conlleva un problema: ¿Qué pasará cuando el usuario sí ingrese la fecha de compra? En ese caso, es necesario que la asignación de la fecha sí vaya entre comillas:

if($_POST['FechaCompra']=="") {
  $fo2= 'NULL'; // NULL entre comillas (simples o dobles)
} else {
  $fo2 = $_POST['FechaCompra'];
}

"UPDATE TABLA1 SET FechaCompra = '$fo2' WHERE Referencia = '$r'"; // Este sí debe ir entre comillas

Podrías crear dos consultas, pero no es lo ideal. Sería mejor comparar la fecha contra 0000-00-00 en lugar de NULL. Además, deberías validar que la fecha sea válida, pues el usuario podría ingresar un fecha inadecuada (1920-02-02, por ejemplo, donde el usuario tendría 93 años y habría comprado el producto a los pocos meses/años de vida XD).
OK. Arreglado!.
Gracias Skaparate.