SQL位类型与PHP条件

时间:2013-08-04 19:29:53

标签: php sql types bit

今天我遇到了一个bug。我的数据库中的列数很少,BIT类型。我得到了这些值(0/1)当我试图比较它时,如果声明我总是假的。

$cat->is_visible = ($cat_vis == 1) ? TRUE : FALSE;

即使$ cat_vis在DB中得到1,结果也为FALSE。任何想法为什么会这样?

3 个答案:

答案 0 :(得分:0)

我认为您在尝试直接比较BIT类型时会遇到问题。如果在查询中转换字段会发生什么?

e.g。

SELECT `is_visible`+0 AS is_visible FROM cat;

SELECT CAST(`is_visible` AS UNSIGNED) AS is_visible FROM cat;

答案 1 :(得分:0)

位用b'1'或'true / false'或二进制表示法引用。使用位表示法尝试查询

SELECT cols FROM tablename WHERE bit_column = (1)

然后参考。

答案 2 :(得分:0)

试试这个:

$cat->is_visible = ($cat_vis === '1') ? true : false;