2007-11-27
■[PHP]PDOでmysqlに日本語つっこんだら文字化けして困ったけど解決した
PDOでutf-8の日本語入力データ(フォームデータ)を入れたら文字化けしてた(Mysql Query Borwser上で)。
同じくutf-8設定のRubyデータが文字化けしてないので、mysql内での設定は問題ないはず。
いろいろやってためしたところ、次の方法で一発解決。
$pdo = new PDO("mysql:host=localhost; dbname=phptest", "root", "pass"); $stmt = $pdo -> query("SET NAMES utf8;"); $stmt = $pdo->prepare("insert into hoge(name, count)values(:name, :count)"); :
$stmt = $pdo -> query("SET NAMES utf8;");が重要。php.iniにcharset関係の設定は不要でした。
念のため、その他しておいた設定。
・フォームデータの場合はHTMLに
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
を入れること。
トラックバック - http://d.hatena.ne.jp/aoi_273/20071127/1196150017
リンク元
- 156 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2006-08,GGLG:ja&q=aptana+svn
- 110 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=s3a&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=plugin+rails+to+eclipse&spell=1
- 87 http://www.google.co.jp/search?sourceid=navclient&aq=t&hl=ja&ie=UTF-8&rlz=1T4GGIH_jaJP212JP212&q=<![CDATA[++エスケープ
- 81 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=CDATA+エスケープ&num=50
- 50 http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla:ja:official&hs=bSK&q=rails+プラグインでdb接続&btnG=検索&lr=lang_ja
- 25 http://www.google.co.jp/search?q=php5.2.5+インストール+httpd&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 24 http://www.google.co.jp/search?hl=ja&q=PHP5.2.5+インストール&btnG=検索&lr=
- 20 http://www.google.co.jp/search?q=eclipse+コンソール+文字化け&hl=ja&lr=&start=10&sa=N
- 19 http://www.google.co.jp/search?q=さくらインターネット PDO&sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-46,GGGL:ja
- 19 http://www.google.com/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4SUNA_ja___JP215&q=javascript++キーボード 入力