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」とエラー表示され、正常に動作しない。
あー、もう、ガッカリだ。また今度何か対策を考えよう。