Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/10/2011, 08:40
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problemas en php al insertar campo NULL en MySQL

El problema es que si es opcional el campo, tu estas armando tu query esperando siempre un valor, y lo que hace PHP al armar la query es dejarlo así:
Código MySQL:
Ver original
  1. INSERT INTO empresa (nom_comer_gr) VALUES ('NULL')

Lo cual es erroneo, en ese caso el query correcto debería ser así:
Código MySQL:
Ver original
  1. INSERT INTO empresa (nom_comer_gr) VALUES (NULL)

Sin las comillas simples, para resolverlo tienes que re-estructurar como creas las queries, por ejemplo:

Código PHP:
Ver original
  1. <?php
  2. $empresa = empty($_POST['empresa']) ? 'NULL' : "'" . mysql_real_escape_string($_POST['empresa']) . "'";
  3.  
  4. $query = "INSERT INTO empresa (nom_comer_gr) VALUES ($empresa)";

Aunque lo mejor es que uses PDO y prepared statements, así te evitas ese paso y PDO se encarga de escapar y reemplazar la variable por su valor correcto:
Código PHP:
Ver original
  1. $empresa = isset($_POST['empresa']) ? $_POST['empresa'] : null;
  2.  
  3. $db = new PDO($dsn);
  4. $sth = $db->prepare('INSERT INTO empresa (nom_comer_gr) VALUES (?)');
  5.  
  6. $sth->execute(array($empresa));

Saludos.