Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/07/2012, 11:21
jfgg01
 
Fecha de Ingreso: septiembre-2009
Mensajes: 56
Antigüedad: 14 años, 7 meses
Puntos: 0
Ingresar NULL en MySQL

Buen dia y buen karma para ustedes...

Paso a plantear mi problema:

Recupero valores de un formulario, y los convierto en variables:

$c2
$p2
$c3
$p3
$c4
$p4
etc.

algunos de esos campos pueden NO haber sido ingresados por el usuario (lo cual es válido porque no son campos obligatorios en el formulario). Los campos en el formulario son numericos.
Lo que pretendo es que, si los campos NO fueron ingresados por el usuario, sus valores se guarden en la BBDD como NULL, pero no consigo hacerlo. Pongo a continuacion el codigo usado (incluyendo una funcion)

Código PHP:
function nullSiNecesario ($variable) {
    if (
$variable === or $variable === "0" or $variable === "" or $variable === " " or $variable === NULL
         { 
$resultado NULL; }
    else { 
$resultado $variable; }
    return 
$resultado;
    }

// convertimos los valores a null si fuera necesario...
$c2bd nullSiNecesario ($c2);
$c3bd nullSiNecesario ($c3);
$c4bd nullSiNecesario ($c4);

$p2bd nullSiNecesario ($p2);
$p3bd nullSiNecesario ($p3);
$p4bd nullSiNecesario ($p4);

//creamos una conexion
$conexion=mysql_connect($Host,$User,$Pass)
  or die(
"Problemas en la conexion");
  
//nos conectamos a la BBDD usando la variable $conexion 
mysql_select_db($BaseDatos,$conexion) or
  die(
"Problemas en la seleccion de la base de datos");

// insertamos los valores
mysql_query("INSERT INTO $Tabla3 (
`c2`,  `p2`, 
`c3`,  `p3`, 
`c4`,  `p4`) 
VALUES (
   '$c2bd', '$p2bd',
   '$c3bd', '$p3bd',
   '$c4bd', '$p4bd',)"
$conexion
   or die(
"Problemas en el insert".mysql_error());
mysql_close($conexion); // cierra la conexion a la BBDD

// No me marca error, pero al revisar la tabla, los campos NO ingresados por el usuario tienen valor 0 en lugar de tener NULL 
No me marca error, pero al revisar la tabla, los campos NO ingresados por el usuario tienen valor 0 en lugar de tener NULL .

Alguna idea de donde está mi error de lógica???

de antemano buen karma para ti que liste mi mensaje.