Sie verwenden ein Bit(1)-Feld, um einen booleschen Wert (TRUE
) darzustellen /FALSE
).
Der Datenbankclient ordnet Bitfelder (die größer als ein Bit sein können) Strings zu, in denen ein Zeichen ein Oktett darstellt.
Sie können dann einfach Ihr Bit(1)-Feld als PHP-String über ord()
verwenden funktionieren, da sie die Zeichenfolge als einzelnes Oktett behandelt:
if (ord($Site_Approved)) {
...
}
Sie können $Site_Approved
nicht verwenden direkt, weil es ein String ist und immer TRUE
ergeben würde unabhängig davon, ob das erste Bit gesetzt ist oder nicht.
Alternativ können Sie den Datenbankwert in der SQL-Abfrage bereits in eine Dezimalzahl umwandeln, die möglicherweise das ist, wonach Sie suchen:
s.Site_Approved+0 AS Site_Approved
Dezimalwerte im Bereich von 0 bis 1 verhalten sich sehr ähnlich wie die booleschen Werte von PHP (sie teilen nur nicht den Typ, der Rest ist gleich).