いちご30%off原材料名:いちご、増粘多糖類、着色料、殺虫剤(メタミドホス含む)

| CALENDAR | RECOMMEND | ENTRY | COMMENT | TRACKBACK | CATEGORY | ARCHIVE | LINK | PROFILE | OTHERS |
スポンサーサイト

一定期間更新がないため広告を表示しています

| - | - | - | posted by スポンサードリンク -
MySQL DB 文字コード 20:03
トップページなどに用いる記事の編集・管理ツールを作成していたところ、記事を挿入した際以下のエラーが出た。
Incorrect string value: 'XXX' for column 'YYY' at row 1
文字列'XXX'は列'YYY'の値にふさわしくない文字とのこと。
文字コードの問題というのはなんとなく解ったが、具体的にどう対処していいか分からなかったのでとりあえずIncorrect string valueでぐぐってみた。

色々と出てきたが、
alter database 〜DB名 character set utf8
このクエリを発行したら以下の様になった。

character_set_clientutf8
character_set_connectionutf8
character_set_databaseutf8
character_set_filesystembinary
character_set_resultsutf8
character_set_serverutf8
character_set_systemutf8

phpファイルの文字コードもutf8だし、これで問題解決と思いきやそうはいかなかった。
mysql_client_encoding()という関数で戻ってくる値がlatain1だった。
この関数はphpでMySQLに接続に使った、クライアントの文字コードを返すらしいので、どうやらphpの文字コードに問題があるようだった。

そこでphp.iniの以下の項目を

mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = Shift-JIS

から

mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = Shift-JIS

へ変更するとinsertする事が出来た。

しかし、insertされたデータを見ると文字化けが起きていたので、
さらに

mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8

としたら文字化けは起こらなくなった。
JUGEMテーマ:WebProg
| 開発ノート | comments(0) | trackbacks(0) | posted by スネ夫 -
スポンサーサイト 20:03
| - | - | - | posted by スポンサードリンク -
Comment








Trackback
この記事のトラックバックURL: http://goodgame.jugem.jp/trackback/89
<< NEW | TOP | OLD>>