こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

phpMyadminでのMySQLの文字セット

windows2000 pro
Apache2.0.55
phpmyadmin 2.8.03
mySQL 5.0.20

上記環境にてphpmyadminでmySQL上にテーブルを作成しようとしているのですが日本語のテーブル名を作成するとエラー(文字化け)になってしまいます。
基本的に現状すべてSJISに設定しているのですが
(漏れがあるかもしれませんが)phpmyadminの画面上に表示されるmySQLの文字セットが
"UTF-8 Unicode (utf8)"になっているのが原因かと推測しているのですが思いつく箇所をすべてSJISにしているつもりなのですが一向に変わりません。

・php.ini
------------------------------------
mbstring.internal_encoding = SJIS
mbstring.http_output = SJIS
------------------------------------

・my.ini
------------------------------------
[mysql]
default-character-set=sjis
[mysqld]
default-character-set=sjis
------------------------------------

・config.inc.php
------------------------------------
$cfg['DefaultLang'] = 'ja-sjis';
$cfg['DefaultConnectionCollation']
= 'sjis_japanese_ci';
$cfg['DefaultCharset'] = 'ja-sjis';
------------------------------------
各関連しそうな箇所は上記のように設定しているのですがお気づきな点及び解決方法がありましたらお教え下さい。

同環境にて管理しやすくするためテーブル名、フィールド名を日本語にしたいのが目的です。

投稿日時 - 2006-04-26 11:49:38

QNo.2115039

困ってます

質問者が選んだベストアンサー

#1回答者です。

試行錯誤して、幾つか事実確認しました。

>MySQLの文字セットがUTF-8

以下の設定をしたところ、私の環境ではsjisとなりました。

Windows XP SP2
Apache 1.3.29
php 5.1.2
phpMyAdmin 2.7.0-pl2
MySQL 5.0.19-nt

c:\windows\php.ini
---------------------
extension=php_mbstring.dll

※他にsjis関係の指定はなし
※php.ini設定変更後、apacheをリスタート

my.ini  →今回のための設定変更はなし
---------------------
[client]
default-character-set=sjis

[mysql]
default-character-set=sjis

[mysqld]
default-character-set=sjis

C:\Program Files\Apache Group\Apache\htdocs\phpMyAdmin\config.inc.php
----------------------------
$cfg['DefaultLang'] = 'ja-sjis';
$cfg['Lang'] = 'ja-sjis';
$cfg['DefaultCharset'] = 'shift_jis';

>Create tableを実行、「SQLが正常に実行されました」表示されるが、「データベースにテーブルはありません」と表示される

表名一覧表示はされないが、実体は出来ているようです。insertやselectはできるし、drop tableもできます。
MySQL Command Line Clientで日本語の表名定義をした場合は、phpMyAdminでも一覧表示できるようです。

投稿日時 - 2006-04-26 21:08:15

お礼

回答ありがとうございます。
いろいろお手数をお掛けいたしまして大変恐縮です。
私も回答内容を実施後、コマンドラインで確認したところ実際にはテーブルは作成されていました。
phpMyAdminはテーブルを構築するだけの目的でしたので実際mySQL側に日本語のテーブルができていれば問題ないかとも思っています。
現状、初めてmySQL他に挑戦しており不明確な質問になっていたかもしれませんが本当に事実確認までしていただき大変ありがとうございました。

投稿日時 - 2006-04-27 09:34:14

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

日本語の表名、列名を使用する場合、MySQLのコマンドで、以下の入力が必要です。

SET NAMES SJIS

投稿日時 - 2006-04-26 13:30:31

お礼

回答ありがとうございます。
phpMyAdminを使用しているのでphpMyAdminのSQLにて
"SET NAMES SJIS"後、"Create table ..."を実行したのですが”SQL が正常に実行されました”が表示されたのですが実際は”データベースにテーブルはありません”と表示されてしまいます。やはりphpMyAdminの方の設定等が不十分なのでしょうか?

投稿日時 - 2006-04-26 14:15:46