Foros del Web » Programando para Internet » PHP »

Reconocer valor nulo entregado a un SP

Estas en el tema de Reconocer valor nulo entregado a un SP en el foro de PHP en Foros del Web. Hola, necesito de su ayuda amigos foreros. resulta que tengo una variable en php que es NULL <?php $_POST["rut_pac"] = NULL; $insert = mysql_query("CALL nuevo_paciente('".$_POST["rut_pac"]."')",$conn); ...
  #1 (permalink)  
Antiguo 18/08/2010, 12:42
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años, 7 meses
Puntos: 6
Reconocer valor nulo entregado a un SP

Hola, necesito de su ayuda amigos foreros.
resulta que tengo una variable en php que es NULL

<?php
$_POST["rut_pac"] = NULL;

$insert = mysql_query("CALL nuevo_paciente('".$_POST["rut_pac"]."')",$conn);
?>

Y todo perfecto, pero quiero pasársela a un SP de mysql y comprobar en el SP que el valor sea nulo antes de insertarlo en la BD, y no se como hacerlo estuve viendo varias cosas pero nada me resultó, y ya me hagoté, así que les pido su ayuda por favor

gracias
  #2 (permalink)  
Antiguo 18/08/2010, 12:48
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Reconocer valor nulo entregado a un SP

Vas a insertar un valor nulo? que sentido tiene eso?
De igual forma, esta validación es mas de php que de mysql.
ya reporté el tema.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 18/08/2010, 12:56
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años, 7 meses
Puntos: 6
Respuesta: Reconocer valor nulo entregado a un SP

obviamente en realidad no es un solo parámetro el que voy a pasarle al SP. Puse 1 solo a modo de ejemplo.
Lo que sucede es que en realidad tengo un formulario bastante extenso donde tengo varios campos que pueden ser no llenados y no quiero tener que hacer una tremenda validación en php sobre que posibles combinaciones de campos están vacíos para llamar a diferentes consultas sql dependiendo de eso. Lo que quiero es poder enviarlos tal cual van, nulos o no, y así llamar a un solo SP 1 sola ves y que en la BD se realice la validación del contenido.


require("conexion.php");
conectar();
$insert = mysql_query("CALL nuevo_paciente('".$_POST["rut_pac"]."','".$_POST["nombre"]."','".$_POST["ape1"]."',
'".$_POST["ape2"]."','".$_POST["fecha_nacimiento"]."',
'".$_POST["direccion"]."','".$_POST["telefono"]."',
'".$_POST["actividad"]."','".$_POST["prevision"]."',
'".$_POST["estado_civil"]."')",$conn);
mysql_close($conn);
  #4 (permalink)  
Antiguo 18/08/2010, 13:03
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Reconocer valor nulo entregado a un SP

desde mysql sería

IF parametro IS NULL THEN
accion
END IF;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 18/08/2010, 13:39
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años, 7 meses
Puntos: 6
Respuesta: Reconocer valor nulo entregado a un SP

gracias, al sitanxis funciona perfectamente, pero ahora mi problema es otro.
Aparentemente el valor no llega NULL al SP porque la condicion no se está cumpliendo y no esta grabando en la tabla


BEGIN
IF direccion IS NULL THEN
INSERT INTO pacientes
VALUES (rut_pac,nombre,ape1,ape2,fecha_nacimiento,NULL,
telefono,actividad,prevision,estado_civil);
END IF;
END

Bueno me imagino que eso tiene mas relación con php
  #6 (permalink)  
Antiguo 18/08/2010, 17:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Tema movido desde Mysql a PHP
  #7 (permalink)  
Antiguo 18/08/2010, 19:53
 
Fecha de Ingreso: agosto-2010
Mensajes: 79
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Reconocer valor nulo entregado a un SP

Cita:
Iniciado por Cero_Cool Ver Mensaje
gracias, al sitanxis funciona perfectamente, pero ahora mi problema es otro.
Aparentemente el valor no llega NULL al SP porque la condicion no se está cumpliendo y no esta grabando en la tabla


BEGIN
IF direccion IS NULL THEN
INSERT INTO pacientes
VALUES (rut_pac,nombre,ape1,ape2,fecha_nacimiento,NULL,
telefono,actividad,prevision,estado_civil);
END IF;
END

Bueno me imagino que eso tiene mas relación con php
sep... supongo... manda codigo php para ver sino... mira que NULL de php no es lo mismo que null de mysql... y que '' no es lo mismo que null tampoco...
  #8 (permalink)  
Antiguo 18/08/2010, 20:46
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 22 años, 3 meses
Puntos: 8
Respuesta: Reconocer valor nulo entregado a un SP

Nulo en sql es NULL, que para php seria una cadena con el valor "NULL".
Código PHP:
Ver original
  1. $variable = null; // nulo para php
  2. $variable = ""; // vacio para php
  3. $variable = false; // falso para php
  4. $variable = 0; // entero php
  5. $variable = "NULL"; // cadena php que cuando armes el query va a ser nulo de mysql

No se como te llega la variable, pero podrias usar empty()
Código PHP:
Ver original
  1. if (empty($variable )) {
  2.     echo '$variable = "NULL";
  3. }

Aca esta la docu de empty() http://ar.php.net/manual/en/function.empty.php.. todas esas cosas que te mostre al principio (menos la ultima) las evalua como verdaderas y haria el reemplazo por la cadena NULL.

Saludos!
  #9 (permalink)  
Antiguo 18/08/2010, 20:53
 
Fecha de Ingreso: agosto-2010
Mensajes: 79
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Reconocer valor nulo entregado a un SP

claro... a eso apuntaba yo... igualmente el empty es conocido por ciertos comportamientos que simpatisan con el mismisimo demonio... aunque no puedo negar que eh abusado de el cuando no estaba bien seguro de lo que me podia llegar en una variable :p

Pero si, podes llenar todo de (empty($var))? 'NULL':$var;
  #10 (permalink)  
Antiguo 18/08/2010, 20:57
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 22 años, 3 meses
Puntos: 8
Respuesta: Reconocer valor nulo entregado a un SP

Fe de erratas:
Cita:
Iniciado por fran86 Ver Mensaje
Código PHP:
Ver original
  1. if (empty($variable )) {
  2.     echo '$variable = "NULL";
  3. }
es:
Código PHP:
Ver original
  1. if (empty($variable )) {
  2.     $variable = "NULL";
  3. }

por copipastear
  #11 (permalink)  
Antiguo 22/08/2010, 23:02
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años, 7 meses
Puntos: 6
Respuesta: Reconocer valor nulo entregado a un SP

gracias por su ayuda, me ha sido muy util

Etiquetas: nulo, reconocer
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 17:04.