Du använder ett Bit(1)-fält för att representera ett booleskt värde (TRUE
/FALSE
).
Databasklienten mappar bitfält (som kan vara större än en bit) till strängar där ett tecken representerar en oktett.
Du kan än bara använda ditt Bit(1)-fält som PHP-sträng via ord()
fungerar eftersom den behandlar strängen som en enda oktett:
if (ord($Site_Approved)) {
...
}
Du kan inte använda $Site_Approved
direkt eftersom det är en sträng och det skulle alltid utvärderas till TRUE
oavsett om den första biten är inställd eller inte.
Alternativt kan du casta databasvärdet i SQL-frågan redan till en decimal som kan vara det du letar efter:
s.Site_Approved+0 AS Site_Approved
Decimalvärden i intervallet 0 till 1 beter sig väldigt likt PHPs booleaner (de delar bara inte typen, resten är densamma).