关于php:Boolean在mysql中保存为tinyint(1)

Boolean save as tinyint(1) in mysql

我用一些布尔字段创建了表。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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代码中使用===时,它们不能被转换。(我应该在ifforwhile中使用==,我认为它会在我的系统中产生一些错误。)

那么,我应该如何解决呢?默认情况下,我应该如何从MySQL获取布尔值?


从数据库中获取数据时,在PHP中通常只获取字符串。类型仅在数据库端使用。

该字段是一个TINYINT,因为mysql根本不包含BOOLEAN字段。


mysql中没有"boolean"类型。您可以使用==签入PHP。