2010-10-17 60 views
3

奇怪的是,我使用apache + php與windows。 PHP處理MySQL位域爲數字: 它的工作正確;php mysql位字段

$b = $row['bit_field'] 
if ($b == 1) { 
    echo 'ok'; 
} 

在CentOS和PHP 5.3.3 '的./configure' '--with-MySQL的' '--with-mcrypt的' '--enable-MBSTRING' '--with-IMAP'「 - 與-Kerberos的--with-IMAP-SSL'--with-libjpeg的'--with-的libpng '--with-GD'

我需要

$b = $row['bit_field'] 
if (ord($b) == 1) { 
    echo 'ok'; 
} 

什麼選項改變它?

- 感謝名單

+2

'$ row [「bit_field」]'包含什麼? – 2010-10-17 11:57:00

+2

*「奇怪,我正在使用apache + php與windows。」* - 確實。 :-) – Tomalak 2010-10-17 11:57:12

+3

@Tomalak pah。現在不是1999年了。 Apache + Win的工作就像一個魅力:) – 2010-10-17 12:06:09

回答

4

如果你正在處理現場確實有點場,那麼想必你應該使用位域運營商測試的值設置什麼位?

if ($b & 0X1) { echo ('Least significant bit in byte set'); } 
if ($b & 0X80) { echo ('Most significant bit in byte set'); } 
if ($b & 0X80000000) { echo ('Most significant bit in 32 bit word set'); } 

無論其他位的值如何,都可以使用它們檢查位字段中的各個位。