
... según lo que muestras estás guardando en una tabla "usuarios" --que
no contiene un campo "direccion"-- pero estás recuperando un campo "direccion" de una tabla "datos"...

.... ¿?
Sé claro en cuanto al código y al comportamiento... si tienes un ejemplo en línea que mejor. Como te dijeron, es un comportamiento extraño el que planteas y en el código que muestras no se vé (no de mi parte) algo que pueda originar tal error (fuera de que tampoco se le vé relación).
... me adelanto: Antes de guardar imprime el valor de las variables, asegurate que estás guardando "todo el contenido" y no el error venga desde antes.
Saludos!