さくらインターネットのスタンダードプランでは、Mysql5.1.30だった。
たいして考えないでCREATE TABLEすると、照合順序がujis_japanese_ci(EUC-JP)になってしまう。
utf8_general_ciを使いたいところです。文字化け防止の手順を。
DBは契約したときに1つだけ割り当てられてますが、DB自体を設定することはできないので、テーブル作成時、mysql_connect()した後、mysql_select_db()前にutf8に設定する必要があるようです。
CREATE TABLE時
テーブルの照合順序をutf8_general_ciに設定する。
-
-
$sql = "CREATE TABLE `tablename` (data1,data2,...) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;";
-
$link = $db->Query( $sql );
INSERTやSELECT時
以下のように、接続した後にSET NAMES utf8をセットすると、INSERT,SELECTなどの時うまく日本語が文字化けせずに入りました。
charset, collateはconfigでdefineきっておけば良いですね。
参考リンク
MySQL 6.5.3 CREATE TABLE 構文
http://dev.mysql.com/doc/refman/4.1/ja/create-table.html
さぼてん:PHP+Mysql+UTF-8で文字化け対策
http://saboten009.blogspot.com/2008/01/phpmysqlutf-8.html




