MW211 EXIT

devlog
PostgreSQL/boolean型
2011年09月15日
PostreSQLにおいてboolean型の項目の値は、
普通にSQL文を実行したり、pg_query()を使ったりすると
「t」(true)か「f」(false)という一文字で取得される。
なので、取得された結果を使う場合、
「if(■ == 't')」とかって判定をしなきゃならない。

でも、PDO(->execute()したり、->fetch()したり)だと
「1」(true)か「」(false)という形で取得される。
つまりこれだと「if(■)」でOKだ。

追記:PHPで「echo TRUE;」ってすると「1」が表示される。
上記の「1」は「=== TRUE」では真だが「=== 1」や「=== '1'」では偽だ。
まぎれもなく、「TRUE」のようだ。

ちなみに、SQL文中のSELECTのWHERE句、INSERTのVALUES句、UPDATEのSET句とかでは
「true」「false」をそのまま使える。
あくまで参照結果の話。

追記:以下でも入力可能みたい
・trueなら「TRUE」「't'」「'true'」「'y'」「'yes'」「'1'」
・falseなら「FALSE」「'f'」「'false'」「'n'」「'no'」「'0'」
分類:PHP、PostgreSQL