做了更多一些調查。 http://php.net/manual/en/language.types.boolean.php是一個開始的好地方。檢查您所知道的數據中可能存在的錯誤。
但是,我希望這只是爲了數據清理的目的。設計一些需要查詢PHP認爲錯誤的東西似乎是一個非常糟糕的主意......請看這些測試結果。
我插入MySQL表以下內容,然後查詢數據庫與PHP和檢查,如果結果被認爲是虛假或不:
考慮FALSE
INSERT into confirm (data) VALUES ('0');
INSERT into confirm (data) VALUES (00);
INSERT into confirm (data) VALUES (000);
INSERT into confirm (data) VALUES ('');
INSERT into confirm (data) VALUES (null);
INSERT into confirm (data) VALUES (' ');
INSERT into confirm (data) VALUES (' ');
INSERT into confirm (data) VALUES (' '); #tab character
考慮TRUE
INSERT into confirm (data) VALUES ('0.00');
INSERT into confirm (data) VALUES ('0.000');
INSERT into confirm (data) VALUES (0.0);
INSERT into confirm (data) VALUES (0.00);
INSERT into confirm (data) VALUES (0.000);
INSERT into confirm (data) VALUES ('00');
INSERT into confirm (data) VALUES ('false');
INSERT into confirm (data) VALUES ('null');
INSERT into confirm (data) VALUES ('[]');
INSERT into confirm (data) VALUES ('array');
INSERT into confirm (data) VALUES ('array()');
請注意,在MySQL中插入多個空格時,會將其轉換爲空的「'字符串。製表符保持不變(但看起來像是白色空間)。
事實上,您可能有標籤字符或PHP認爲錯誤的其他雜項空格字符告訴我,創建一個涵蓋所有可能性的查詢將會很困難。
tldr:你唯一現實的選擇是選擇一切,並檢查腳本是否爲假。
帶空格的字符串應在PHP中評估爲true。 –
PHP認爲錯誤的東西清楚地記錄在:http://php.net/manual/en/language.types.boolean.php。一個非零數字的字符串不是假的。 –
嗯感謝您的意見,正確的,基於我只需要添加一個檢查FALSE的文檔,但當然,列數據類型不是布爾值,它是char(32),所以不需要檢查。怎麼樣一串'0.00'或'00000000000000'。猜猜我現在會繼續調查。 – Andrew