Normalmente, añadir los valores regulares a mySQL, PHP de la siguiente manera:
function addValues($val1, $val2) {
db_open(); // just some code ot open the DB
$query = "INSERT INTO uradmonitor (db_value1, db_value2) VALUES ('$val1', '$val2')";
$result = mysql_query($query);
db_close(); // just some code to close the DB
}
Cuando los valores están vacíos/null ($ VAL1 == "" o $ val1 NULL ==), y desea NULL que se añade a SQL y no es 0 o cadena vacía, a la siguiente:
function addValues($val1, $val2) {
db_open(); // just some code ot open the DB
$query = "INSERT INTO uradmonitor (db_value1, db_value2) VALUES (".
(($val1=='')?"NULL":("'".$val1."'")) . ", ".
(($val2=='')?"NULL":("'".$val2."'")) .
")";
$result = mysql_query($query);
db_close(); // just some code to close the DB
}
Tenga en cuenta que null debe agregarse como "NULL" y no como "'NULL'". Los valores no nulos se deben agregar como "'". $ Val1. "'", Etc.
Espero que esto ayude, solo tuve que usar esto para algunos registradores de datos de hardware, algunos de ellos recolectando temperatura y radiación, otros solo radiación. Para aquellos sin el sensor de temperatura, necesitaba NULL y no 0, por razones obvias (0 también es un valor de temperatura aceptado).
Esto no agrega un valor NULL MySQL (primera '' campo id incrementos). Esto establece el atributo a la cadena "NULL" que es diferente del valor NULL de mysql. Solo digo que escribiste dos cosas diferentes, la primera es correcta; la segunda, no tanto, creo. – G4bri3l
@ G4bri3l: en la cadena '$ query',' $ intLat' y '$ intLng' no están entre comillas. Entonces, cuando las variables se interpolan, será ', NULL, NULL);'. –
Oh, sí veo eso ahora. ¡Bonito! Gracias por tomarse el tiempo para señalarlo a mí;) – G4bri3l