Quantcast
Channel: omnioo lab. record » PHP/MySQL
Viewing all articles
Browse latest Browse all 59

Symfony2のDoctrineで謎のエラーにハマる(予約語)

$
0
0

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘key) VALUES (‘hoge’, ‘huga’ at line 1

予約語ですかい!violation!と言われたのは中学時代のバスケットボール部以来ですよ!
http://d.hatena.ne.jp/moroto1122/20121114/1352822210
しかしこの予約語はどれぐらいあるんですかね。逆にね、予約語になるっぽいものは元々避けてほしいです。

$keyを$accesskeyにしてみた。
Symfony2でこれらの自体を解消する方法は滅法面倒で、

  1. Entityの修正(ここがコアになっている)プロパティーとゲッターとセッターを修正
  2. Typeの修正(Formを作成していたらここも肝になってくるので)
  3. Controllerの中、全部修正(幸い丁寧なエラーが出てくれるけど、こりゃめんどう臭い)
  4. twigの変数全部


ここまでやって、データベーススキーマを作り直す。で、クソなことに
php app/console doctrine:schema:update --force
ではアップデートしてくれないので、手動でカラム名を変更したりしないとダメです。変更後にもう一度コマンドを実行すると、

php app/console doctrine:schema:update –force
Nothing to update – your database is already in sync with the current entity metadata.

まあ、なんとか正常になったみたい。
これでひと通り動きを確認したけど、問題なかったので、たぶんこれでよいのだと思う。


Viewing all articles
Browse latest Browse all 59

Trending Articles