Cita: Es logico, un INT es numerico, para mysql el valor nulo es el 0.
No es así. Una columna numérica puede ser NULL, pero eso no equivale a cero. NULL es un valor que define inexistencia. Cero es un valor real.
El problema se puede estar produciendo en el paso desde PHP a MySQL.
Ahora bien, cuando intentas ingresar el campo como NULL, ¿entra así en el string?:
Código sql:
Ver originalINSERT INTO tabla(cid, eid, gid, fid, ano, mes, dia, conc, fecha_intro, uid)
VALUES('1', '1', '1', '1', '1990', '4', '20', 'NULL', NOW(), '3')
o así:
Código sql:
Ver originalINSERT INTO tabla(cid, eid, gid, fid, ano, mes, dia, conc, fecha_intro, uid)
VALUES('1', '1', '1', '1', '1990', '4', '20', NULL, NOW(), '3')
En la primera estás poniendo un string que contiene "NULL"; en la segunda estás poniendo el valor NULL. Son diferentes.
Nota: Si estás ingresando valores numéricos, no los pongas entre apóstrofes. No los necesitan.