2011-09-26 122 views
2

我用一些布尔字段做了表。布尔另存为tinyint(1)在mysql中

CREATE TABLE PM_ADMIN_LIST(
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
username VARCHAR(250) NOT NULL, 
password VARCHAR(250) NOT NULL, 
mail VARCHAR(250) NOT NULL, 
added_time INT, 
super_admin VARCHAR(250) NOT NULL, 
last_time INT, 
last_ip VARCHAR(250), 
see_user_per BOOLEAN DEFAULT FALSE, 
change_user_per BOOLEAN DEFAULT FALSE, 
see_people_per BOOLEAN DEFAULT FALSE, 
change_people_per BOOLEAN DEFAULT FALSE, 
add_people_per BOOLEAN DEFAULT FALSE, 
remove_people_per BOOLEAN DEFAULT FALSE, 
see_album_per BOOLEAN DEFAULT FALSE, 
add_album_per BOOLEAN DEFAULT FALSE, 
change_album_per BOOLEAN DEFAULT FALSE, 
remove_album_per BOOLEAN DEFAULT FALSE, 
see_music_per BOOLEAN DEFAULT FALSE, 
add_music_per BOOLEAN DEFAULT FALSE, 
change_music_per BOOLEAN DEFAULT FALSE, 
remove_music_per BOOLEAN DEFAULT FALSE, 
admin_per BOOLEAN DEFAULT FALSE, 
yahoo_per BOOLEAN DEFAULT FALSE, 
status_per BOOLEAN DEFAULT FALSE, 
pm_per BOOLEAN DEFAULT FALSE, 
ip_blocking_per BOOLEAN DEFAULT FALSE 
);

但是,当我在phpMyAdmin检查,BOOLEAN字段tinyint(1),他们是0默认。我可以让1TRUE。但是当我在我的PHP代码中使用===时,它们无法转换。 (我应该使用ifforwhile==,我认为它可以使一些错误在我的系统。)

所以,我应该怎么解决呢?我应该如何得到它默认从BOOLEAN BOOLEAN?

+0

难道你不能只是做'=== 1'? – Kokos

+1

根据http://stackoverflow.com/questions/289727/which-mysql-datatype-to-use-for-storing-boolean-values'BOOLEAN'只是'TINYINT(1)'的别名 - 零值是假,非零值是真的。你为什么需要将它与'==='进行比较? PHP应该处理'true/false'到1/0的转换。 –

+1

你不能直接得到布尔值。 –

回答

12

从数据库中获取数据时,通常不会在PHP中使用任何字符串。这些类型仅用于数据库端。

该字段为TINYINT,因为MySQL根本不包含BOOLEAN字段。

1

MySQL中没有'boolean'类型。您可以在PHP中使用==检查。

相关问题