プロが教えるわが家の防犯対策術!

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';
------------------------------------
各関連しそうな箇所は上記のように設定しているのですがお気づきな点及び解決方法がありましたらお教え下さい。

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

A 回答 (2件)

#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でも一覧表示できるようです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/04/27 09:34

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



SET NAMES SJIS
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/04/26 14:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!