简体   繁体   English

布尔值保存为mysql中的tinyint(1)

[英]Boolean save as tinyint(1) in mysql

I made table with some Boolean fields. 我用一些布尔字段制作了表格。

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
);

But when I check it in phpmyadmin, BOOLEAN fields are tinyint(1) and they are 0 by default. 但是当我在phpmyadmin中检查它时, BOOLEAN字段是tinyint(1)并且它们默认为0 I can make 1 to be TRUE . 我可以让1TRUE But when I use === in my PHP code, they can't be converted. 但是当我在我的PHP代码中使用===时,它们无法转换。 (I should use == in if , for , while and I think it can make some bug in my system.) (我应该在ifforwhile使用==并且我认为它可以在我的系统中产生一些错误。)

So, how should I solve it? 那么,我该如何解决呢? How should I get it BOOLEAN by default from mysql? 我应该如何从mysql默认获得BOOLEAN?

You usually don't get anything but strings in PHP when fetching data from the database. 从数据库中获取数据时,通常不会在PHP中获取任何字符串。 The types are solely used on the database side. 这些类型仅在数据库端使用。

The field is a TINYINT because MySQL doesn't contain a BOOLEAN field at all. 该字段是TINYINT因为MySQL根本不包含BOOLEAN字段。

There is no 'boolean' type in MySQL. MySQL中没有'boolean'类型。 You could just use the == check in PHP. 你可以在PHP中使用== check。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM