Du bruger et Bit(1)-felt til at repræsentere en boolesk værdi (TRUE
/FALSE
).
Databaseklienten kortlægger bitfelter (som kan være større end én bit) til strenge, hvor ét tegn repræsenterer en oktet.
Du kan end blot bruge dit Bit(1)-felt som PHP-streng via ord()
funktion, da den behandler strengen som en enkelt oktet:
if (ord($Site_Approved)) {
...
}
Du kan ikke bruge $Site_Approved
direkte, fordi det er en streng, og det vil altid evalueres til TRUE
uanset om den første bit er indstillet eller ej.
Alternativt kan du caste databaseværdien i SQL-forespørgslen allerede til en decimal, som måske er det, du leder efter:
s.Site_Approved+0 AS Site_Approved
Decimalværdier i området fra 0 til 1 opfører sig meget som PHP's booleaner (de deler bare ikke typen, resten er den samme).