まとめ ブログ ダウンロード 掲示板 メール

れぶろぐ

< 2006-05-18 (木) 2006-05-20 (土) > 最新


2006-05-19 (金)

MySQL 4.1 以降の文字化け問題 (2)

昨日の話 の続き。

任意のバージョンの MySQL サーバに対応できるように、 MySQL サーバのバージョンが 4.1 以上ならば SET NAMES **** という SQL 文を実行するよう、 PHP のアプリを修正してみる。

まず、MySQL サーバのバージョンは、 SELECT version(); を実行することで以下のように得られる。

mysql> SELECT version();
+----------------------------+
| version()                  |
+----------------------------+
| 4.0.24_Debian-10sarge1-log |
+----------------------------+
1 row in set (0.00 sec)
mysql> SELECT version();
+---------------------------+
| version()                 |
+---------------------------+
| 4.1.11-Debian_4sarge2-log |
+---------------------------+
1 row in set (0.01 sec)

この結果を考慮して、こんなコードを追加してみた。

$sql = 'SELECT version()';
$result = mysql_query($sql);
$version = mysql_result($result, 0);
$version = floatval($version);

if ($version >= 4.1) {
    $sql = 'SET NAMES ujis';
    $result = mysql_query($sql);
}

MySQL サーバのログを取って確認してみたが、 これで期待通りの動作をしてくれる。

Tags: PHP MySQL | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink
本日のリンク元

編集