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

解決済みの質問

sqlファイルで、SET NAMES 'ujis' を、MySQLバージョンによって実行したい

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

現在、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固定とかにできるのでしょうか。。

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

投稿日時 - 2006-01-01 19:45:12

QNo.1870260

暇なときに回答ください

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

MySQLに繋いだ後、MySQLサーバーのバージョンを調べてからSET NAME 'ujis'を送るかどうかを決めることで対処できます。
(私が作った掲示板でも同じ方法を採っています)

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

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

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

投稿日時 - 2006-01-02 11:42:01

お礼

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

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

投稿日時 - 2006-01-05 10:13:06

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

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

回答(1)

あなたにオススメの質問