我為網站的表單開了一個 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)

文章標籤

創作者介紹
創作者 fannys23 的頭像
fannys23

小攻城師的戰場筆記

fannys23 發表在 痞客邦 留言(0) 人氣()