Dec 14

さくらインターネットでPHP+Mysql 文字コードをUTF8で使うメモ(文字化け対策)

php, さくら(サーバ) No Comments »

さくらインターネットのスタンダードプランでは、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に設定する。

PHP:
  1.  
  2. $sql = "CREATE TABLE `tablename` (data1,data2,...) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;";
  3. $link = $db->Query( $sql );

INSERTやSELECT時

以下のように、接続した後にSET NAMES utf8をセットすると、INSERT,SELECTなどの時うまく日本語が文字化けせずに入りました。

PHP:
  1. $link = mysql_connect( $host, $user, $password );
  2.  
  3. mysql_query( "SET NAME utf8", $link );
  4.  
  5. mysql_select_db( $dbname );

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

May 05

さくらインターネットでPEARをインストール

さくら(サーバ) 1 Comment »

えー。このサイトはレンタルサーバの「さくらインターネット」スタンダードを利用しているんですが。
ちょいといろいろやろうとすると、PHPのPEARなんかが必要になったりします。

PEARは入っていたと思ったんですが、うまく動かない。
どうやら、サーバによってバージョンが古かったりするらしいです。

というわけで、自分のレンタルスペースにインストールしなきゃならんとです。

Read more... »

Copyright(c) 小山太郎.com All rights reserved.