You should consider setting default values in your database table, even if that is a null.
As for not wanting to wastefully check for items not submitted, be aware there are two ways of inserting data.
If you take this example table (sorry, I had to guess at the exact settings)
id | INT auto-increment
a | INT
b | INT
c | INT
x | INT default 0
y | VARCHAR (20) default ''
z | TIMESTAMP - default current_timestamp
a) insert a full row every time
INSERT INTO tbl_name VALUES(0,1,2,3, 23, 'a string', '2011-12-16 12:00:00');
b) insert just the named fields - as long as the db has defaults set for each field which CAN be sometimes not set.
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3);
So, if your incoming data is something like:
$_POST['a'] = '11';
$_POST['b'] = '22';
$_POST['c'] = '33';
$_POST['x'] = '44';
If you are careful you can validate this data against expectations and create something which spits out:
INSERT INTO tbl_name (a,b,c,x) VALUES(11,22,33,44);
PDO and its prepared statements is a good tool to help you achieve this (ditto Mysqli no doubt).