Normalmente, você adiciona valores regulares a mySQL, a partir de PHP como este:
function addValues($val1, $val2) {
db_open();
$query = "INSERT INTO uradmonitor (db_value1, db_value2) VALUES ('$val1', '$val2')";
$result = mysql_query($query);
db_close();
}
Quando seus valores são vazios / nulos ($ val1 == "" ou $ val1 == NULL), e você deseja que NULL seja adicionado ao SQL e não 0 ou string vazia, ao seguinte:
function addValues($val1, $val2) {
db_open();
$query = "INSERT INTO uradmonitor (db_value1, db_value2) VALUES (".
(($val1=='')?"NULL":("'".$val1."'")) . ", ".
(($val2=='')?"NULL":("'".$val2."'")) .
")";
$result = mysql_query($query);
db_close();
}
Observe que nulo deve ser adicionado como "NULL" e não como "'NULL'". Os valores não nulos devem ser adicionados como "'". $ Val1. "'", Etc.
Espero que isso ajude, eu apenas tive que usar isso para alguns registradores de dados de hardware, alguns deles coletando temperatura e radiação, outros apenas radiação. Para aqueles sem o sensor de temperatura, eu precisava de NULL e não de 0, por razões óbvias (0 também é um valor de temperatura aceito).