Foros del Web » Programando para Internet » PHP »

variable que valga NULL para usarla en mysql

Estas en el tema de variable que valga NULL para usarla en mysql en el foro de PHP en Foros del Web. Hola a todos, no se si la pregunta viene en este foro, creo que sí porque realmente el problema lo tengo al dar valor a ...
  #1 (permalink)  
Antiguo 06/08/2007, 13:11
 
Fecha de Ingreso: julio-2004
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
variable que valga NULL para usarla en mysql

Hola a todos, no se si la pregunta viene en este foro, creo que sí porque realmente el problema lo tengo al dar valor a una variable en php. Luego esa variable la uso para una consulta en mysql.

El problema es el siguiente, tengo que hacer una inserción en una tabla que tiene definida una clave foránea a otra tabla (la clave foránea debe apuntar a una clave primaria válida o ser nula). El valor de esa clave los tengo guardado en una variable. Si la variable tiene el valor (cadena de texto) que existe como clave primaria no da problemas y si no existe sí. Hasta aquí todo correcto, pero si no tengo valor para esa variable, necesito meter un "null" en la BD, pero si hago (cualquiera de las siguientes):

Código PHP:
$autor_art='null'$autor_art="null"$autor_art=null$autor_art=''
Para luego meterlo así
Código PHP:
$result=mysql_query("INSERT INTO articulo (titulo, subtitulo, fk_autor) VALUES ('$titulo_art','$subtitulo_art','$autor_art')",$link); 
*Nota: también he probado a poner el $autor_art sin comillas pero da error.

Me toma que el valor que el autor es una cadena de texto vacía o que vale 'null' (como cadena de texto) pero nunca me toma el valor NULL (digamos como no especificado) y por tanto no puedo realizar la inserción.

¿Cómo podría asignar ese valor NULL, que sea entendido como NULL por la BD y no como una cadena de texto que valga 'null'? Espero haberme explicado bien...

Muchas gracias a todos. Saludos
  #2 (permalink)  
Antiguo 06/08/2007, 14:19
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: variable que valga NULL para usarla en mysql

Amigo,, a ver si entiendo...

si pones por ejemplo
$variable = NULL;

es null. ahi te lo tiene que agarrar, si pones, $variable= 'null' efectivamente le estas diciendo que es una cadena de texo.

Me explico??

un abrazo.
  #3 (permalink)  
Antiguo 06/08/2007, 17:15
 
Fecha de Ingreso: julio-2004
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: variable que valga NULL para usarla en mysql

Cita:
Amigo,, a ver si entiendo...

si pones por ejemplo
$variable = NULL;

es null. ahi te lo tiene que agarrar, si pones, $variable= 'null' efectivamente le estas diciendo que es una cadena de texo.
Pues va a ser que sigue dando el mismo error, gracias de todas formas gabyrsh
  #4 (permalink)  
Antiguo 06/08/2007, 17:28
 
Fecha de Ingreso: septiembre-2006
Mensajes: 81
Antigüedad: 18 años, 2 meses
Puntos: 5
Re: variable que valga NULL para usarla en mysql

y si haces un if else??
Código PHP:
<?
if($autor_art == NULL){
$result=mysql_query("INSERT INTO articulo (titulo, subtitulo) VALUES ('$titulo_art','$subtitulo_art')",$link);
}else{
$result=mysql_query("INSERT INTO articulo (titulo, subtitulo, fk_autor) VALUES ('$titulo_art','$subtitulo_art','$autor_art')",$link);
}
?>
Al no añadirla pasa directamente a ser un NULL
Saludos

Última edición por elliotmoso; 06/08/2007 a las 17:30 Razón: havia un error en el codigo
  #5 (permalink)  
Antiguo 06/08/2007, 17:56
 
Fecha de Ingreso: agosto-2007
Mensajes: 6
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: variable que valga NULL para usarla en mysql

Hola!!!
Me parece que el amigo gabyrsh tiene razon.
Hay una diferencia en php sobre el null, null es null y NULL es NULL, asi que para asignarle a una variable un valor NULL lo tienes que hacer asi $var =NULL no $var=null, me parece que ese es el error.

saludos
[email protected]
  #6 (permalink)  
Antiguo 07/08/2007, 03:42
 
Fecha de Ingreso: julio-2004
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: variable que valga NULL para usarla en mysql

Hola, lo del $var=NULL lo había probado, pero claro a la hora de hacer el update en la BD me obliga a poner '$var' con las comillas (no se por qué) por lo que se va al garete. Lo que me sugería elliotmoso ya lo tenía implementado aunque es un poco chapucilla (sin ánimo de ofender, gracias por la ayuda) y realmente funciona y como ando un poco mal de tiempo para salir al paso me vale a las mil maravillas.

Realemente buscaba a ver si alguno ponía alguna solución más elegante o me daba la clave de por qué no funcionaba con una variable como yo quería. Mas adelante si tengo tiempo intentaré ponerlo con lo de las variables.

Gracias a todos por la ayuda prestada.
Un saludo
  #7 (permalink)  
Antiguo 07/08/2007, 11:52
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: variable que valga NULL para usarla en mysql

mmm... por que no probas esto? fijate con el phpmyadmin, en tu base de datos, en el campo donde tenes el problema, que valor le pusiste como predeterminado. Si dice NOT NULL, supuestamente no te va a dejar poner algun valor en blanco, y ahi seria le problema....

Proba y contame.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:41.