Sul mio computer di casa,MySQL selezionare b'1' ritorna intero 1 o ASCII carattere 1 a seconda dell'ambiente
mysql_fetch_row(mysql_query(" select b'1' "))[0]
ritorna stringa "1".
Ma quando ospitati su server web restituisce stringa di caratteri ASCII avere 1.
Doc fa dire-
valori dei bit vengono restituiti come valori binari. Per visualizzarli in forma stampabile , aggiungi 0 o usa una funzione di conversione come BIN().
Ma sul mio computer locale restituisce ancora "1" senza alcuna conversione eseguita da me.
Come posso avere lo stesso comportamento sul mio server web?
Se ottengo lo stesso comportamento, allora non devo convertire i miei codici PHP da like
$row = mysql_fetch_row(mysql_query(" select bit1_field from .. where .. "));
if($row[0] === '1') ...;
a
... select bit1_field+0 as bit1_field ...
dove bit1_field
è di tipo bit(1)
.
Stai utilizzando entrambe la stessa versione di PHP e MySQL? – Patashu
@Patashu Le versioni PHP e Apache sono le stesse. MySQL è diverso, ma i documenti di entrambe le versioni dicono la stessa cosa, che i bit devono essere convertiti per essere visualizzati. – gom
Come stai testando? Stai usando 'var_dump()'? Si noti inoltre che il dereferenziazione dell'array 'mysql_fetch_row (mysql_query (" select b'1 '")) [0]' è supportato solo da PHP ** 5.4 **. Spero che tu abbia abilitato anche la segnalazione degli errori nel caso ... – HamZa