Ver Mensaje Individual
  #21 (permalink)  
Antiguo 10/09/2010, 23:12
Avatar de Cero_Cool
Cero_Cool
 
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
Respuesta: ¿Como insertar datos null en la bd ?

Cita:
Iniciado por Triby Ver Mensaje
Una solucion (?):

Código PHP:
Ver original
  1. $dato = (empty($_POST['dato'])) ? 'NULL' : "'" . mysql_real_escape_string($_POST['dato']) . "'";
  2.  
  3. // Cuando coloque dato en tu query:
  4.  
  5. $query = "INSERT INTO tabla (dato) VALUES ($dato)";

Si dato no existia, contendra la cadena NULL (sin comillas), que para MySQL sera valor nulo, pero si dato contiene algun valor, entonces sera 'valor de dato'... correctamente escapado e incluye las comillas simples, para evitar errores.
Hola, compañero. hice lo que me dijo y funciona, cuando dejo un campo de los posibles nulos en blanco en el formulario, se guarda null, pero los que lleno, tambien posibles nulos, no se guardan, queda como cadenas vacias. por favor ayudeme con mi codigo, ya que esto me esta tomando mucho tiempo.


Código PHP:
$direccion = (empty($_POST['direccion'])) ? 'NULL' "'" mysql_real_escape_string($_POST['direccion']) . "'";
$telefono = (empty($_POST['telefono'])) ? 'NULL' "'" mysql_real_escape_string($_POST['telefono']) . "'";
$actividad = (empty($_POST['actividad'])) ? 'NULL' "'" mysql_real_escape_string($_POST['actividad']) . "'";
$prevision = (empty($_POST['prevision'])) ? 'NULL' "'" mysql_real_escape_string($_POST['prevision']) . "'";
$estado_civil = (empty($_POST['estado_civil'])) ? 'NULL' "'" mysql_real_escape_string($_POST['estado_civil']) . "'";

        require(
"conexion.php");
        
conectar();
          
$insert "INSERT INTO pacientes (rut_pac,nombre,ape1,ape2,fecha_nacimiento,direccion,telefono,actividad,prevision,estado_civil)
                                 VALUES   ('$rut_pac','$nombre','$ape1','$ape2','$fecha_nacimiento',$direccion,$telefono,$actividad,$prevision,$estado_civil)"