質問: phpとmysqlを使って検索システムを作りました。 サーバーはお名前.comを使っています。 phpmyadminにデータを入れた時、きちんと日本語で表示されます。 しかし、実際にDB内の情報をサイトに表示した時に文字化け(??????といった文字化け)が起きます。 いろいろ調べてみるとmysql_query()を使う方法があるみたいなのですが、脆弱性の問題からおすすめしないと書いてありました。 とはいえ、一度mysql_queryで試してみたのですが、そうすると表示する動作そのものにエラーが発生したりでした。 整理すると以下の状況です。 ・phpmyadminでDB内を確認すると、きちんと日本語が表示されていた。 ・しかしサイトにDB内情報を表示すると????と文字化けを起こしていた。 ・mysql_query()は使えなかった。 具体的な対処法として、どうしたらいいものか、ご教示いただけないでしょうか?
回答: >脆弱性の問題からおすすめしないと書いてありました。 mysql_set_charset()は?バージョンの問題(phpが5.2.3未満とかMySQLが5.0.7未満とか)がなければ、mysql_set_charsetでどうぞ。 #というか、非推奨のMySQL関数ではなく #MySQLiもしくはPDOを使うべきです。 >そうすると表示する動作そのものにエラーが発生したりでした。 「エラーが発生した」だけでは状況がわかりません。エラーメッセージを転記してください。