2011-09-26 2 views
2

나는 부울 필드가있는 테이블을 만들었습니다. 내가 phpMyAdmin을 그것을 검사 할 때부울로 저장 mysql에 tinyint (1)로 저장

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

는하지만, BOOLEAN 필드는 tinyint(1) 그리고 그들은 기본적으로 0 있습니다. 1TRUE으로 만들 수 있습니다. 하지만 내 PHP 코드에서 ===을 사용하면 변환 할 수 없습니다. (나는 if, for, while에서 ==를 사용해야하고 나는 그것이 내 시스템에서 몇 가지 버그를 만들 수 있다고 생각합니다.) 그래서

, 나는 그것을 어떻게 해결해야합니까? 어떻게하면 기본적으로 mysql에서 BOOLEAN을 얻을 수 있습니까?

+0

'=== 1'을 (를) 할 수 없습니까? – Kokos

+1

http://stackoverflow.com/questions/289727/which-mysql-datatype-to-use-for-storing-boolean-values에 따르면'BOOLEAN'은'TINYINT (1)'의 별칭 일뿐입니다. 0 값은 거짓, 0이 아닌 값이 참입니다. '==='와 비교하기 위해 왜 그것을 필요로합니까? PHP는'true/false'의 변환을 1/0으로 처리해야합니다. –

+1

부울을 직접 가져올 수 없습니다. –

답변

12

데이터베이스에서 데이터를 가져올 때 일반적으로 PHP 이외의 문자열을 얻지 못합니다. 유형은 데이터베이스 측에서만 사용됩니다.

MySQL은 BOOLEAN 필드를 전혀 가지고 있지 않으므로 필드는 TINYINT입니다.

1

MySQL에는 '부울'유형이 없습니다. PHP에서 == 수표를 사용할 수 있습니다.

관련 문제