PHP 5を使用すると、MySQLクエリで取得した値がすべて「???????」となってしまい、文字セットの設定が間違っていることが分かります。
MySQL 5 をインストールしたとき、デフォルトの文字セットとして gb2312 を選択しましたが、それでも文字化けが返されました。解決策は、MySQL サーバーに接続した後に set 文字セットと同じ「set names X」ステートメントを呼び出すことです ( X は設定された文字セットです)。以下は私の接続関数です:
function sql_connect() {
global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE;
$connection = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD) または startUpError('<p>MySQL データベースに接続できませんでした。</p>','Connectエラー');
if (!mysql_select_db($MYSQL_DATABASE))
{
「install.php」をインクルードします。
doInstall();
mysql_select_db($MYSQL_DATABASE) または startUpError('<p>データベースを選択できませんでした: '.mysql_error().'</p>', '接続エラー');
}
sql_query('set names "gb2312"'); //sql_query はカスタム実行クエリ関数であり、キーはこのステートメントです
$connection を返します。
}