Używasz pola Bit(1) do reprezentowania wartości logicznej (TRUE
/FALSE
).
Klient bazy danych mapuje pola bitowe (które mogą być większe niż jeden bit) na łańcuchy, w których jeden znak reprezentuje oktet.
Możesz użyć pola Bit(1) jako ciągu PHP za pomocą ord()
działa, ponieważ traktuje ciąg jako pojedynczy oktet:
if (ord($Site_Approved)) {
...
}
Nie możesz użyć $Site_Approved
bezpośrednio, ponieważ jest to ciąg znaków i zawsze będzie miał wartość TRUE
niezależnie od tego, czy jest ustawiony pierwszy bit, czy nie.
Alternatywnie możesz rzutować wartość bazy danych w zapytaniu SQL już na ułamek dziesiętny, co może być tym, czego szukasz:
s.Site_Approved+0 AS Site_Approved
Wartości dziesiętne w zakresie od 0 do 1 zachowują się bardzo podobnie do wartości logicznych PHP (po prostu nie mają tego samego typu, reszta jest taka sama).