Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/07/2009, 02:57
El-FeNiX
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 4 meses
Puntos: 19
Respuesta: Insertar valor NULL en un campo de una tabla MySQL 5 desde script PHP

Veo que ya lo has solucionado pero de todas maneras te voy a decir el fallo por si te sirve mas adelante.

Si asignas null a un variable php lo procesa como un tipo booleano, pero PHP es independiente de MySQL, entonces si llamas a esa variable te devolvera NULL que es nada.

Lo que necesitas ahi es enviar NULL a MySQL para que lo procese como booleano, pero todas las consoltas se envian con texto (strings).

Tambien hay que tener en cuenta que NULL es un tipo especial si en la consulta, si lo metes entre comillas en la consulta MySQL lo reconocera como texto (strings).

Entonces lo correcto seria:

$Tipo = "NULL" (O con comillas simples, es lo mismo)

$sql = "insert into usuario(Usuario,Contrasenia,Tipo) values ('$Usuario', '$Contrasenia', $Tipo)";

Y en caso se que quisieras de que segun algunas circunstancia se envie NULL o una string (cadena de texto) pues pon las comillas desde antes

if ($_POST['edad'] < 18 {
$tipo = "NULL";
} else {
$tipo = "'mayor de edad'" //dentro de las comillas dobles (") hay dos comillas simples (') asi que al hacer la consulta se enviara correctamente para que MySQL lo procese como string (si no tiene comillas y no hace referencia a un funcion o un campo existente MySQL dara error)

Si es un poco lioso, pero ten en cuenta que la consulta enviada tiene que seguir unas normas y una estructuras para que MySQL la procese bien. Entonces desde PHP tienes que generar la consulta conforme a ello, ya que como dije antes son lenguajes independientes...

Espero que me hayas entendido.

Un Saludo.