4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQLのtinyint(1)にCakePHPでsave()すると、登録される値がおかしなことに…

Last updated at Posted at 2013-09-10

調べてみればいくらでも情報は出てくるけれども、ハマった本人はたまらない経験でした。

MySQLのtinyint(1)のカラムにCakePHPのsaveメソッドで値を登録しようとすると
どうにも正しく値が登録されない。
save()メソッド直前までデータをダンプして追い続けたけど、値自体は正しく渡ってきている。
(tinyint(1)ならunsignedじゃなくても127まではいけるはずなのにな…)

……(・・?

どうやらCakePHPのsave()メソッドはtinyint(1)はbooleanとして扱うようです。

ググればいくらでも情報は出てきたのですが、既存で使用されているカラムの型が原因なんて思いつかず...orz

回避策は以下の2つかと。
・tinyint(1)やめる
・query()メソッドで直接SQL発行

普通にやるなら上ですかね?

4
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?