Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiast NULL wstawia "0" ?
Forum PHP.pl > Forum > Bazy danych > MySQL
MariuszS
Witam,
Problem może dość noobowy ale nie mogę sobie z nim poradzić.
Mam w tabeli pole typu int(11) z NULL ustawionym na TAK, domyślnie NULL.
Gdy wysyłam zapytanie z pliku z pustym POSTem wstawia mi 0 zamiast NULL.
Gdy dodaje rekord z poziomu phpmyadmina wstawia mi NULL.
Chcę żeby zamiast tego 0 był NULL gdy wysyłam zapytanie z pliku.
skowron-line
Zrzuć zapytanie na ekran i zobacz co się wykonuje
MariuszS
Wartości dla tego pola nie ma jest: pole="" więc teoretycznie powinien się wrzucić NULL a nie 0.
skowron-line
Cytat(MariuszS @ 26.05.2012, 13:14:47 ) *
Wartości dla tego pola nie ma jest: pole="" więc teoretycznie powinien się wrzucić NULL a nie 0.

no niestety rozczaruje cię
  1. INSERT tabela (id, pole) VALUES (1, "")
pole = 0
  1. INSERT tabela (id) VALUES (1)
pole = null
MariuszS
Na innej wersji bazy gdy daje pole="" wrzuca NULL więc nie do końca jest również tak jak ty piszesz:)
Niktoś
To może zamiast:
  1. INSERT tabela (id, pole) VALUES (1, "");

spróbuj użyć null:
  1. INSERT tabela (id, pole) VALUES (1, NULL)


Poza tym null !="" i null!=0 -musiałbyś zrobić coś w sylu:
  1. INSERT tabela (id, pole) VALUES (1, (($variable===0)?NULL:$variable))

!*!
I bardzo dobrze Ci podaje. W php wszystko jest stringiem, dlatego

  1. $x = '';


zwraca string(0) "" i tak też wysyłasz to do bazy jako zmienną która istnieje.

Cytat
Null - czy pole może przyjmować wartości NULL.
Domyślne - domyślna wartość tego pola w nowych rekordach.
ethann
Cytat
W php wszystko jest stringiem

Types

Co masz na myśli mówiąc, że wszystko jest stringiem? Zmienne przesyłane POSTem/GETem?
!*!
Cytat(ethann @ 26.05.2012, 16:38:20 ) *
Co masz na myśli mówiąc, że wszystko jest stringiem? Zmienne przesyłane POSTem/GETem?


Tak, do tego odnosi się temat.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.