Takazudo Clipping*

  • 文字サイズ小
  • 文字サイズ中
  • 文字サイズ大

PHP5 MySQLで文字化け

MySQLいじっていて、UTF-8を使いたいのだけれど、文字化けしまくるということで、色々調べたんだけれど、何やらいろいろ難しいらしく、自分の場合、とりあえずこれで解決した。

  • 呼ぶ時でも書く時でも、DBに繋いだらmysqli_set_charset($db, "utf8")を指定しておく
  • databaseを作るときは、default character set utf8を指定しておく
  • tableを作るときは、default character set utf8を指定しておく

database作るときの例

$db = mysqli_connect("DBURI","USERNAME","PASSWORD");
mysqli_set_charset($db, "utf8");
mysqli_query($db,"create database TESTDB default character set utf8");
mysqli_close($db);

table作るときの例

$db = mysqli_connect("DBURI","USERNAME","PASSWORD");
mysqli_set_charset($db, "utf8");
mysqli_query($db,"use TESTDB");
$sql =
    "create table testTable(
        title VARCHAR(200),
        date DATE,
        detail VARCHAR(1000)
    ) default character set utf8";
mysqli_query($db,$sql);
mysqli_close($db);

レコード登録する作るときの例

$db = mysqli_connect("DBURI","USERNAME","PASSWORD");
mysqli_set_charset($db, "utf8");
$sql = "use TESTDB";
mysqli_query($db,$sql);
$sql = "insert into testtable (title,date,detail) values('テストニュース1','2008-06-05','こんなニュースがありました');";
mysqli_query($db,$sql);
mysqli_close($db);
echo "test data inputted!";

レコード呼ぶときの例

$db = mysqli_connect("DBURI","USERNAME","PASSWORD");
mysqli_set_charset($db, "utf8");
$sql = "use TESTDB";
mysqli_query($db,$sql);
$sql = "select * from testtable;";
$res = mysqli_query($db,$sql);
mysqli_close($db);

入れなくても大丈夫だったけど、これもいれとくといいらしい

mb_language("uni");
mb_internal_encoding("utf-8");
mb_http_input("auto");
mb_http_output("utf-8");

スイーツタウン 2008/6/30 (10:40)

私も以前、文字化けで困ってました。
でも、↓こちらの方法で直りました。
http://www.yamada-lab.org/doc/win/mysql5/utf8/index.html

一度お試しを。


Takazudo 2008/6/30 (11:05)

はじめまして、Takazudoです。
色々まとまっておりますね。試してみます。
ありがとございます。


  • コメントを書く
: 
: 
: 
TrackBack URL (この記事についてトラックバックしたい時は以下のURLを指定してください)
http://gyauza.egoism.jp/cgi/mt/mt-tb.cgi/1941



2007 © Takazduo Some Rights Reserved.