我為網站的表單開了一個 bit 型態的欄位來儲存布林值 (boolean),取出時發現怎麼取,不管裡頭存的是 true (1) 或 false (0),抓出來都會被判斷成 true。

不管是這樣:

if($row_data["is_user"]==1)

還是這樣:

if($row_data["is_user"]==true)

都沒辦法正確判斷資料庫的 is_user 欄位的值。

 

查了一下,找到這篇:"MYSQL Bit field with PHP",裡頭說到,bit 欄位被 PHP 取回時,可能會以二進位 (binary) 取得,所以要用 PHP 的 ord() 這個函式來取回 ASCII,再做判斷。

試著加上 ord() 就好了:

if(ord($row_data["is_user"])==true)
arrow
arrow

    小攻城師 發表在 痞客邦 留言(0) 人氣()