Código sql:
Ver originalINSERT INTO publicaciones (id, ruta, id_foto, titulo, descripcion)
VALUES ('', '$raiz', '$nombre', '', '');
En realidad, algo así...
Me explico: En este ejemplo
no está poniendo nulos, estás poniendo caracteres vacíos, que en SQL no son la misma cosa. Si la tabla tiene definidos esos campos como NOT NULL, esta sentencia
no va a generar un error, porque
'' no es NULL.
El error saltaría si, siendo NOT NULL los dos últimos campos, tu pusieses algo así:
Código sql:
Ver originalINSERT INTO publicaciones (id, ruta, id_foto)
VALUES ('', '$raiz', '$nombre');
En este ejemplo, los campos están definidos de origen como NOT NULL... pero no los estás ingresando, con lo que el nuevo registro intentará poner NULL en esos dos campos... y saltará el error.
Si no te importa que esos campos se carguen con NULL, entonces en el momento de crear la tabla, en lugar de NOT NULL debe ir NULL.
Cuidado: Cuando quieras buscar si un campo contiene NULL como valor, no se puede hacer:
campo=''. Eso no te responderá TRUE, porque '' es
caracter vacío...