Foros del Web » Programando para Internet » PHP »

asignar NULL a variable --> Grabar a DB

Estas en el tema de asignar NULL a variable --> Grabar a DB en el foro de PHP en Foros del Web. Saludos cordiales, Tengo un problema de concepto y sintaxis, y por ello mi error al grabar a mi DB (trabajo con MySQL) digamos que tengo ...
  #1 (permalink)  
Antiguo 19/02/2011, 10:30
 
Fecha de Ingreso: diciembre-2009
Mensajes: 56
Antigüedad: 15 años
Puntos: 0
asignar NULL a variable --> Grabar a DB

Saludos cordiales,
Tengo un problema de concepto y sintaxis, y por ello mi error al grabar a mi DB
(trabajo con MySQL)

digamos que tengo una tabla con 2 campos:
nombre tipo text
edad tipo text y acepta NULL


caso 1
$nombre = "marcelo";
$dni = "NULL";
mysql_query("insert into tabla values( '$nombre' ,'$dni' ));

Al grabar en la db Obviamente me graba como CADENA y yo no quiero una cadena que diga NULL


caso 2
$nombre = "marcelo";
$dni = "" ;

mysql_query("insert into tabla values( '$nombre' ,'$dni' ));

Al grabar el campo dni graba como "0" osea graba vacio y eso yo no quiero porque vacio es un valor osea cero y no es NULL,


caso 3 funciona cuando inserto directamente asi:
$nombre = "marcelo";
$dni = NULL;

mysql_query("insert into tabla values( '$nombre' , NULL ));


caso 4

mysql_query("insert into tabla values( '$nombre' , NULL )");

Si no asigno NULL a ninguna variable recien funciona :(


ALGUIEN ME PUEDE AYUDAR ???
  #2 (permalink)  
Antiguo 19/02/2011, 10:37
Avatar de kike00  
Fecha de Ingreso: febrero-2005
Ubicación: El Salvador
Mensajes: 180
Antigüedad: 19 años, 10 meses
Puntos: 7
Respuesta: asignar NULL a variable --> Grabar a DB

Si tu campo acepta valores NULL, no tienes que asignarle a una variable NULL, simplemente al hacer el insert no mandes nada ni siquiera eso que haces en el caso 4...
  #3 (permalink)  
Antiguo 19/02/2011, 10:39
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 10 meses
Puntos: 14
Respuesta: asignar NULL a variable --> Grabar a DB

Cita:
Iniciado por kike00 Ver Mensaje
Si tu campo acepta valores NULL, no tienes que asignarle a una variable NULL, simplemente al hacer el insert no mandes nada ni siquiera eso que haces en el caso 4...
Correcto, no mandas nada y se queda en NULL mandando algo aunque sea la palabra NULL te arreisgas a que se inserte algo y no lo detecte como NULL cuando quieras trbajar con esos datos, ten en cuenta también que no es lo mismo NULL que vacío.
  #4 (permalink)  
Antiguo 19/02/2011, 10:40
 
Fecha de Ingreso: diciembre-2009
Mensajes: 56
Antigüedad: 15 años
Puntos: 0
Respuesta: asignar NULL a variable --> Grabar a DB

Cita:
Iniciado por kike00 Ver Mensaje
Si tu campo acepta valores NULL, no tienes que asignarle a una variable NULL, simplemente al hacer el insert no mandes nada ni siquiera eso que haces en el caso 4...
Hola, gracias por contestar, a que te refieres con no mandar nada,

no puedo evadirme de esta sintaxis en mysql

"insert into tabla values('','') " porque si hago esto

" insert into tabla values ('$nombre')" tendre error de sintaxis en mysql
  #5 (permalink)  
Antiguo 19/02/2011, 10:46
Avatar de kike00  
Fecha de Ingreso: febrero-2005
Ubicación: El Salvador
Mensajes: 180
Antigüedad: 19 años, 10 meses
Puntos: 7
Respuesta: asignar NULL a variable --> Grabar a DB

si...
pero insert tambien tiene esta sintaxis
INSERT INTO tabla (campo1[,campoN]) VALUES (valor1[,valorN])
antes de VALUES, y entre paréntesis especifica el nombre de los campos a los que se les va a insertar un valor, pero si no pones algún campo que no acepta NULL entonces la instrucción te va a devolver error.

para tu caso: INSERT INTO tabla ('nombre') VALUES ($nombre);
  #6 (permalink)  
Antiguo 19/02/2011, 11:06
 
Fecha de Ingreso: diciembre-2009
Mensajes: 56
Antigüedad: 15 años
Puntos: 0
Respuesta: asignar NULL a variable --> Grabar a DB

Gracias por contestar amigo, es verdad , tienes razon, con tu sintaxis no da error, el problema es que tengo muchas condiciones a la hora de insertar el dni,y quiero usar solo una linea para insertar todos los registros de lo contrario tendria que tener mas de 6 if anidados

pero me acabas de dar una idea;
hacer una funcion para grabar cuando es NULL o cuando no
$dni= "NULL"
$var = if($dni!="NULL")? "'$dni'" : $dni

insert into (nombre,dni) values ('$nombre',$var)
  #7 (permalink)  
Antiguo 19/02/2011, 11:12
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 10 meses
Puntos: 14
Respuesta: asignar NULL a variable --> Grabar a DB

Yo lo uso sin comillas: f($dni!=NULL)
  #8 (permalink)  
Antiguo 19/02/2011, 12:52
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: asignar NULL a variable --> Grabar a DB

Iba a comentar lo de AdrianSeg, no es lo mismo $variable="NULL"; que $variable=NULL;
En el primer caso asignas una cadena, la palabra "NULL"; en el segundo efectivamente la pones en NULL.

Etiquetas: asignar, grabar, null, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:20.