プロが教える店舗&オフィスのセキュリティ対策術

こんにちわ。
毎度お世話になっております。

現在、MySQLのバージョンを4.0/4.1の両方の環境で動くようにシステムを構築していますが、
4.1以降では、.sqlファイルの先頭にSET NAMES 'ujis' を埋め込んで、文字化けが発生しないようにしています。

このSET NAMESは、4.0以前ではエラーとなる命令なので、4.0以前の環境で実行するときはコメントにして、4.1以降で実行するときには有効にしています。

4.0でも4.1でも、どちらでも動作するようにしたいのですが、どうするとよいでしょうか。

4.1の環境の設定で、ujis固定とかにできるのでしょうか。。

初心者なので初歩的な質問ですが、
よろしくおねがいいたします。

A 回答 (1件)

MySQLに繋いだ後、MySQLサーバーのバージョンを調べてからSET NAME 'ujis'を送るかどうかを決めることで対処できます。


(私が作った掲示板でも同じ方法を採っています)

バージョンを調べるSQL文は、
SELECT VERSION()
です。
(ちなみにPostgreSQLでも同じ文です)

で、これを送ると
4.0.26-nt-max
とか
4.1.16-log
というように値が返ってきます。
-以降の部分はサーバーのオプションを表しているだけなので数字の部分だけ見れば判断できます。

ちなみにこの方法だと、予め~.sqlというファイルに入れておいて実行させるのは無理ですので、バージョンを調べるのとSET NAMESを送るのは~.sqlのファイルとは別にしてシステム内でやるようにすると良いです。
    • good
    • 0
この回答へのお礼

ありがとうございました。
おかげ様で、Linux用のスクリプトを作ることが出来ました。
(dos用がまだですが。。)

また、よろしくおねがいいたします!

お礼日時:2006/01/05 10:13

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