CakePHPだとMySQLのtinyint(1)がbooleanとして扱われてしまう件

CakePHP+MySQLの構成で、テーブルのデータ型にtinyint(1)を指定すると、boolean型として扱われてしまい、0か1しか入らなくなるんです…。

マンガやコミックそれに小説をパソコンやスマホで楽しみたいなら、renta(レンタ)やひかりブックスなど、電子書籍や電子ブックと貸本などのサービスが便利でよく利用されています。

注目のスポンサーリンク

そんなん知るかーーーっ!!!

とういわけで、すっかりドハマリしてしまいました。

やろうとしていたことは、tinyint(1)のフラグ的なフィールドを設けておいて、

・初期値は0
・処理Aが終わったものは1に更新
・処理Aが終わっていることを前提とし、処理Bも終わったものは2に更新

みたいなコードを書いたんですけれど、いざ動かしてみると、3番めの処理がどうやっても動かないのです。

debugkitで見ていると、SQLは正常に発行出来ているようだし、手動でフィールドの値を「2」にしてやると、その後の処理もちゃんと動くので、なんでかわからないけれど、
「saveそのものは成功しているのに、2という値が保存されない」
という状態になっているということまではわかりまして。

まぁ確かに、便利だけどトラブルが多いtinyintさんのことなので、と思い、もしかしてCakePHPと相性悪いのか?と(でも今までにも使ったことはあったのですが)
で、ググってみましたらば。

CakePHP and tinyint as boolean

なんじゃそりゃ…orz

いや、気持ちはわかるよ、うん。感覚的には。
「TRUEかFALSE以外のハッキリしないモノなんか挿れないで!」ってことですよね。

わかるんですけど、他のデータベースも扱えるフレームワークで、とあるデータベースの、とあるデータ形式だけ特別ルール適用とか、誰得なんだよ…。

原因がわからなくて、めっちゃ悩んでしまいましたよ…僕の数時間返してください(T_T)

注目のスポンサーリンク