U gebruikt een veld Bit(1) om een booleaanse waarde weer te geven (TRUE
/FALSE
).
De databaseclient wijst bitvelden (die groter kunnen zijn dan één bit) toe aan strings waarin één teken een Octet vertegenwoordigt.
Je kunt dan gewoon je Bit(1) veld als PHP string gebruiken via de ord()
functie omdat het de snaar als een enkel octet behandelt:
if (ord($Site_Approved)) {
...
}
U kunt $Site_Approved
niet gebruiken rechtstreeks omdat het een string is en het altijd zou evalueren tot TRUE
ongeacht of het eerste bit is ingesteld of niet.
Als alternatief kunt u de databasewaarde in de SQL-query al naar een decimaal casten, wat mogelijk is wat u zoekt:
s.Site_Approved+0 AS Site_Approved
Decimale waarden in het bereik van 0 tot 1 gedragen zich erg gelijkaardig aan de booleans van PHP (ze delen gewoon niet het type, de rest is hetzelfde).