I try to avoid using NULL if it's not necessary to the application as it adds an extra byte to every field that you allow it on, petty I know, especially as storage isn't a premium much anymore. But - if you're willing to allow a zero to be your nothing value then you can allow blank inserts by quoting the inserts.
create temporary table cah (id int not null default 0);
insert into cah VALUES (3), (1), ('');
select * from cah;
Will give you 3, 1, 0. If you don't like the extra hazard of having to quote the input, which I don't like myself, you could do somehting like
$age = (int)$_GET['age'];
On your input, which will avoid possible errors on numeric fields that you haven't checked for non numeric.