Reiti: mySQl BIT Datentyp abfregen ..?

Hi Leute ..

Ihr kennt doch bestimmt, den BIT Datentyp unter mySQL.. kann mir jemand sagen warum folgendes Konstrukt IMMER TRUE ist, und wie ich den wert korrekt aus der Datenbank bekomme??

while( $row = mysql_fetch_array($result) )
{
 ...
 if( $row["test"] ) echo "T1";
 else echo "T2";
 ...
}

es kommt IMMER(!) "T1"

ich hab's auch mit allen möglichen Vergleichen versucht, mit 0,1,TRUE,FALSE.. ganz egal was in der DB steht (0 od. 1).

mit ausgabe der spalte per echo kommt auch tatsächlich ASCII(0) + ASCII(1) (wie es eben in der DB steht .. nur in PHP kann ichs nicht abfragen

Für Schlaumeier:

if( $row["quer"] == 1 )
if( $row["quer"] == TRUE )
usw. hab ich alles probiert, rein logisch erkennt PHP IMMER ein WAHR (auch bei 0 in der DB)

ich weiß, daß es in ASP NUR mit vbTrue etc funktionierte (auch andere Dbs), in PHP weiß ich jetz allerdings nicht mehr weiter..

viell. ist ja wer so nett und stösst mich mit der Nase drauf, danke

  1. achso.. falls es interessiert:

    mySQL >5.0
    PHP >5.0
    Windows XP, IIS

    Feld "test ist definiert wie folgt:

    create table T_TEST( ... , test BIT, ... );

  2. echo $begrüßung;

    if( $row["test"] ) echo "T1";

    var_dump($row['test']);
    echo ord($row['test']);

    PHP type comparison tables

    echo "$verabschiedung $name";

  3. echo $begrüßung;

    man sollte Postings doch zu Ende lesen ...

    if( $row["quer"] == 1 )
    if( $row["quer"] == TRUE )

    Erst "test", nun "quer"? Ich nehme an, du meinst das gleiche.

    mit ausgabe der spalte per echo kommt auch tatsächlich ASCII(0) + ASCII(1) (wie es eben in der DB steht .. nur in PHP kann ichs nicht abfragen

    Warum vergleichst du dann nicht das Ergebnis mit ASCII(0) = chr(0) oder ASCII(1) = chr(1) sondern mit allem möglichen anderen Zeug?

    echo "$verabschiedung $name";