株式会社ネーブルス 社長のブログ

社長のブログ

株式会社ネーブルス 代表取締役 福田一成のブログです。アメーバブログはこちら

テーブル名が日本語

昨日、書いたブログが今日のブログの伏線という

訳ではありませんが、丁度、こんな実験をしてみましたので

ブログに書いてみました。


Windows技術者でプログラムやデータベースの命名に

日本語を使用する人を時々見かけます。


マルチバイト文字と文字コードが多く存在する時代です。

Windowsの世界で完結するならば、問題ないのですが、

どんな状況、環境が生まれても、おかしくありません。


例えば

WindowsでSQL Serverが動いています。

そのテーブル名、カラム名が日本語です。


LinuxサーバのPHPから、そこに接続させる様な場合、

それぞれの環境の文字コードが異なっていたら

(例:Windows=Shift-JIS、UNIX=EUC-JP)

Select文、Insert文のテーブル名、カラム名に

文字コード変換をかけると言う不思議な処理をする事になります。


実際にやってみました。

文字コードさえ合わせれば、問題なく動きますね。

案外、アッサリと動いたので、少し残念です。

もう少し難航すると思ったのですが。

しかし、やはり色々と面倒になると予想されます。


恥ずかしながらソース公開します。


$con = mssql_pconnect('192.168.1.xxx', 'sa', 'xxxxxxx');
$ret = mssql_select_db('xxxdb', $con);
$query = mssql_query(mb_convert_encoding('select * from [T_M_日本]', 'SJIS'));
$row = mssql_fetch_row($query);
echo mb_convert_encoding($row[0], 'EUC-JP', 'SJIS').':'.mb_convert_encoding($row[1], 'EUC-JP', 'SJIS').'<br>';
mssql_free_result($query);
mssql_close($con);


分かりやすい様に掲載時にエラー処理を削除しています。

ここでは、クエリー全てを文字コード変換していますが、

場合によっては、テーブル名だけ、カラム名だけを

変換しなければならない状況になる可能性もあります。


最近は、UTF-8へ統合する動きもありますが、

まだ遠い先の話ですね。

それまでは、なるべく日本語テーブル名、日本語カラム名には、

出会いたくない物です。


Unix技術者でもデータベースに日本語で命名する人はいるのでしょうか?

今まで働いていて見かけた事は無いですけどね。




● 開発費用のオンライン見積り、お問い合わせはこちらから

システム開発費用の概算を、オンライン上でご提示いたします。(所要時間:3分/無料)
お問い合せする事なく、費用感をお確かめいただけます。お気軽にご利用ください。
↓↓↓

システム開発費用のオンライン見積はこちら システム開発のご相談はお気軽にご連絡ください