我用一些布尔字段做了表。布尔另存为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
默认。我可以让1
为TRUE
。但是当我在我的PHP代码中使用===
时,它们无法转换。 (我应该使用if
,for
,while
==
,我认为它可以使一些错误在我的系统。)
所以,我应该怎么解决呢?我应该如何得到它默认从BOOLEAN BOOLEAN?
难道你不能只是做'=== 1'? – Kokos
根据http://stackoverflow.com/questions/289727/which-mysql-datatype-to-use-for-storing-boolean-values'BOOLEAN'只是'TINYINT(1)'的别名 - 零值是假,非零值是真的。你为什么需要将它与'==='进行比较? PHP应该处理'true/false'到1/0的转换。 –
你不能直接得到布尔值。 –