Laravel

Laravel3 データベースのキャラクターセット

PHPのフレームワークLaravelが気になったので、電子書籍「Code Happy」を購入し、バージョン3を試している。

いよいよデータベースを使い始めるところで、テーブルusersをartisanを利用して生成したところ、何とdefault charset が ujis になっていた。これはレンタルサーバーのMySQLの設定で、default charsetがujisになっているためなのだろう。

フレームワークならSQLを書かなくてもテーブルが生成できるので、クラスのメソッドに何か仕掛けがあるに違いない、と思い込んで探したけれど残念ながら見つからなかった。

だからと言って、charsetのために丸々CREATE文を書くのも癪に障る。

そこでSSHでmysqlを起動し、直接データベースをutf8に設定する。

mysql -h xxx.db.sakura.ne.jp -u xxx -p xxx
mysql> alter database xxx default character set utf8;

で、artisan migrate を実行したところ、無事utf8のテーブルができた。

そこで一歩進めて「DB::query()」で上のalter文をプログラムに組み込んだところ、今度は「This command is not supported in the prepared statement protocol yet」とエラー表示され、正常に動作しない。

あー、もう、ガッカリだ。また今度何か対策を考えよう。