※ ChatGPTを利用し、要約された質問です(原文:SQL文エラー charsetの問題でしょうか?)
SQL文エラー charsetの問題でしょうか?
このQ&Aのポイント
phpmyadminでcp932とutf8を使ってデータをセットした際、日本語の検索項目でSQL文エラーが発生します。
別のケースでは、日本語でセットされた項目を抽出してリストボックスを表示させる際、リストボックスの中身が文字化けします。
根本的な問題は不明ですが、環境はSUN SolarisでMySQL 5.0.51a-logを使用しています。
phpmyadminでcp932とutf8を使ってデータをセットしました。
日本語はcp932、数値はutf8です。
【ケース1】
1.phpで日本語の検索項目と年月を入力し、
2.phpで、POSTで受け取ったデータを用いて、
phpmyadminでセットしたデータをselectする際、
SQL文エラーが表示されます。
その際エラー対象となっているのは、日本語検索項目のようです。
(年月のみなら結果が出ます。その際、表示されるデータはIEにて
文字化けせずに表示されています。)
【ケース2】
また、同じデータベースを用いた別のケースで、
日本語でセットされた項目を抽出してリストボックスを表示させた際、
その他の項目はIEにて日本語表示されますが、
リストボックスの中身だけ、「???」「??????」と文字化けしてしまっています。
根本的な問題は何なのでしょうか?
【環境】
OS : SUN Solaris
MySQL : 5.0.51a-log
【使用例】
<ケース1>
$result = mysql_query ( 'set character set cp932' ) ;
$sql = "select WorDate,GenName,StrTime,EndTime,SyaNum,JobType,ComName from Denpyo where WorDate like '%" . $_POST["WorDateYear"] . "-%" . $_POST["WorDateMonth"] . "%' and ComName like '%" . $_POST["ComName"] . "%'";
<ケース2>
$result = mysql_query ( 'set charcher set cp932' ) ;
$sql = "select * from Syain";
【補足】
phpmyadminにて、
ケース1・2のselect文を流すと、結果は表示されます。
文字化けももちろんありません。
お礼
とりあえず、ホスティングを変えて、MySQLの文字セットを utf8から、SJISへ変更しました。 結果、文字化けは解消されました。