To może ja dorzucę Joli dlaczego stało się tak jak mówi. W momencie gdy przesłałaś zawartość formularza na serwer nie wiedziałaś, że niewypełnione pola tekstowe także zwracają pewną wartość, o której nie wiesz. To tak zwany znak końca łańcucha. To jeden z niedrukowalnych znaków o jakim wielu początkujących z programowaniem nie wie, ale bardzo szybko się dowiaduje

Zwłaszcza gdy się w C i C++ operuje na ciągach znakowych char*, bo mają one wtedy ogromne znaczenie i zapomnienie o nich potrafi mieć nieprzyjemne konsekwencje. W notacjach jest on zapisywany jako zero poprzedzone ukośnikiem, czyli \0, ale w formularzu podczas przesyłu nieco inaczej -> 0\' i możesz to zobaczyć podglądając zmienne POST. Jak więc widzisz, nie ma tam pustki tak naprawdę, i dlatego baza zapisuje go. To, że nic nie widzisz, nie znaczy, że nic tam nie ma

Dlatego jeśli chcesz mieć pewność, że takie coś Ci nie przejdzie to użyj sprawdzenia używając empty()