• ベストアンサー
  • すぐに回答を!

php mysqlの文字化け(レンタルサーバーにて

phpとmysqlを使って検索システムを作りました。 サーバーはお名前.comを使っています。 phpmyadminにデータを入れた時、きちんと日本語で表示されます。 しかし、実際にDB内の情報をサイトに表示した時に文字化け(??????といった文字化け)が起きます。 いろいろ調べてみるとmysql_query()を使う方法があるみたいなのですが、脆弱性の問題からおすすめしないと書いてありました。 とはいえ、一度mysql_queryで試してみたのですが、そうすると表示する動作そのものにエラーが発生したりでした。 整理すると以下の状況です。 ・phpmyadminでDB内を確認すると、きちんと日本語が表示されていた。 ・しかしサイトにDB内情報を表示すると????と文字化けを起こしていた。 ・mysql_query()は使えなかった。 具体的な対処法として、どうしたらいいものか、ご教示いただけないでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数120
  • ありがとう数0

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

  • ベストアンサー
  • 回答No.1
  • shimix
  • ベストアンサー率54% (865/1590)

>脆弱性の問題からおすすめしないと書いてありました。 mysql_set_charset()は?バージョンの問題(phpが5.2.3未満とかMySQLが5.0.7未満とか)がなければ、mysql_set_charsetでどうぞ。 http://php.net/manual/ja/function.mysql-set-charset.php #というか、非推奨のMySQL関数ではなく #MySQLiもしくはPDOを使うべきです。 >そうすると表示する動作そのものにエラーが発生したりでした。 「エラーが発生した」だけでは状況がわかりません。エラーメッセージを転記してください。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • PHPとMySQLで文字化けします

    <?php $con=mysql_connect("localhost","oxwar2","chono3"); $db=mysql_select_db("oxwar2",$con); $query="insert into japan(id,title,price)values(1,'絵本',1000)"; $result=mysql_query($query,$con); if($result){ print "OK"; } ?> として、実行すると上手くいきますが、phpMyadminで見ますと、日本語の部分だけが文字化けしております。 これを直すにはどうしたらよいのでしょうか。 文字コードはUTF8で作りました。色々試しても同じです。 どのようにしたらよいのでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHP4からPHP5にしたときのDB文字化けについて

    よろしくお願い致します。 すでに、PHP4で作っていたサイトで、DBにもいろいろと登録していたのですが、PHP5にしたい事情が出てしまい、PHP5にしました。 すると、すでに登録されていた、DBの内容が文字化けしてしまいました。 PHP4(UTF8)+MySQL5(UTF8) → PHP5(UTF8)+MySQL5(UTF8) 情報足りませんでしたら申し訳ないです、申し付けて下さい。 phpMyAdminから見たときは、すでに入っていたDBの内容は文字化けはしていないのですが… 次にPHP5で新しく登録した場合は、サイトでの表示は文字化けしないのですが、次はphpMyAdminで見ると文字化けしていました。 php.iniの設定も同じにしてます、Apacheのconf設定なども見たのですが、文字化けは解消しませんでした。 よろしくお願い致します。

    • 締切済み
    • PHP
  • MySQL 文字化けについて(PHP)

    いつもお世話になっております。 PHPを使用してMySQLからデータを出し入れする際に文字化けが発生し原因がわからず、大変困っております。 MySQL 4.1.18(クライアント 4.1.21) MySQL文字セット UTF-8 Unicode (utf8) 様々なHPを検索して、下記のような一文を入れれば大丈夫と思ったのですが、それでも文字化けは改善されませんでした。 mysql_query("SET NAMES ujis"); 上記文はmysql_connectの直後に記述しております。 INSERT文、SELECT文どちらに不備があるのかわかりません。 ご教授お願い致します。 記述プログラム:(INSERT文) /********************************* * MySQL接続 ********************************/ // DB Connect $db = db_connect(); // DB Select select_db($db); // Set Names mysql_query("SET NAMES ujis"); /********************************* * INSERT文 ********************************/ $sql = "insert into T_YOYAKU values ('1','A','1','あいうえお')"; mysql_query($sql) 省略・・・ 記述プログラム:(SELECT文) /********************************* * MySQL接続 ********************************/ // DB Connect $db = db_connect(); // DB Select select_db($db); // Set Names mysql_query("SET NAMES ujis"); /********************************* * INSERT文 ********************************/ $sql = "select * from T_YOYAKU"; if ( $rs = mysql_query($sql) ) {

    • ベストアンサー
    • MySQL
  • php / MySQL で文字化け

    XAMPP 1.8.3 (PHP:5.5.11 & MySQL5.6.16)を、手元の2台のPCに同様に 構成したつもりなのですが、 マシンA:日本語表示に問題なし マシンB:DBデータから取り込んだ日本語だけが、???に化ける という状況です。 ・OSバージョン・ブラウザバージョンは同一、 ・PHP設定ファイル:php.ini は、2台のマシンで差異なし(diffで確認済) ・MySQL設定ファイル:my.iniは、2台のマシンで差異なし(diffで確認済) なのですが、他に確認すべき個所はありますでしょうか? マシンBの文字化け状況ですが、 (1)DBテーブルから呼び出した日本語だけが???に化ける (2)その他Webページ上の日本語は問題なし (3)phpMyAdminで当該のテーブルを参照すると、日本語は正常に表示されている 他に確認すべき個所はありますでしょうか?

  • phpMyAdmin内での文字化け

    サーバはさくらインターネットを利用してます。 レンタルサーバから専用サーバに移転したのですが、 専用サーバではphpMyAdminで日本語データの文字化けが起きます。 専用サーバのphpMyAdminからDB作成の際、下記の設定で行い、 MySQLの文字セット UTF-8 Unicode (utf8) MySQLの接続照合順序 utf8_unicode_ci DB の照合順序 utf8_unicode_ci レコードをINSERTする際、下記のように文字コードを指定し、 $sql=mb_convert_encoding($sql,"EUC-JP","EUC-JP"); execute_sql($con, $sql); 実行したら、phpMyAdmin内で日本語データが文字化けしました。 サイト内で表示しているDBデータ(日本語)は文字化けしませんでした。 DB の照合順序をutf8以外(ujis_japanese_ciなど)として、 DBを作った場合、レコードをINSERTしたら、サイト内のDBデータも phpMyAdmin内データもどちらも日本語が文字化けします。 また、レンタルサーバのphpMyAdminからDBデータをエクスポートして、 専用サーバのphpMyAdminからインポートした場合、 読み込むDBデータファイルの文字コードをUTF-8にしなければ、 phpMyAdmin内で日本語データが文字化けしてしまいます。 ただ、UTF-8にしてインポートしてもphpMyAdmin内では 文字化けしませんが、サイト内で表示しているDBデータは 文字化けします。 専用サーバのphpMyAdminから データを日本語の文字列に編集・更新したら、 phpMyAdmin内ではそのデータに関しては文字化けなく表示されますが、 サイト内ではそのデータは文字化けしてしまいます。 専用サーバ情報は下記の通りです。 【専用サーバ】 OS:CentOS 5 Apache 2.2.3 PHP5.1.6 DBサーバ:MySQL 5.0.77 アップしているファイルの文字コード:EUC 分かる方、ご回答、よろしくお願いいたします。

    • 締切済み
    • PHP
  • Mysqlで文字化けします

    はじめまして、Mysql初心者です。 Mysqlをインストールして簡単なsql命令を実行したのですが、画面に表示される日本語が文字化けします。MyODBCでACSESSからDBを参照したらやはりテーブル内の日本語が化けていました、この程度の情報しかないのですがどなたか教えて下さい、ヒントでも結構です

    • ベストアンサー
    • MySQL
  • MySQLへの吐き出し日本語が文字化けする

    自分なりに調べてみたのですが,わからないのでお尋ねいたします。 phpmyadminからmysqlに直接日本語を打ち込むと,ちゃんと日本語が表示されます(phpmyadmin内でデータを再度呼び出した時)。が,phpのプログラムからmysqlにデータをinsertし,phpmyadminでデータを参照すると日本語部分のみ文字化けします。 同じプログラムをアイルサーバで動かしていて,そこではうまくいっているのですが,ファーストサーバでうまくいきません。 ファーストサーバの文字コードはEUC-JPですが,phpもプログラムもEUCで書いています。メール送信部分のプログラムは,ちゃんと日本語が出ています。 日本語文字化けの場合に,チェックするべきところは,どういうところがありますでしょうか?。多分,phpというよりはMYSQL側の問題のような気がしないでもないのですが・・・。

    • ベストアンサー
    • PHP
  • Mysqlの文字化けについて

    現在さくらのレンタルサーバを使用しています。 MysqlをPDOからアクセスしているのですが、日本語入力をすると文字化けしてしまいます。 検索した結果、文字コードの問題が多く報告されていたため、 以下のサイト等を参考に、PHPMyAdminで文字コードをutf8_general_ciにして PDOでも文字コードをutf8にしてみました。 しかしながら、PDOから日本語をinsert等するとDB上で「??」が表示されてしまします。 http://d.hatena.ne.jp/sdhr/20100806/1281095806 非常に困っているので、どなたか解決策をご存知でしたらご教授お願い致します。

    • ベストアンサー
    • MySQL
  • mysql-phpでの文字化け

    自分のパソコンでは文字化けせず、正しく表示されているのですが、 niftyのデータサービスを使ってphpで表示すると文字化けします。 my.iniとmy.cnfの問題と思いniftyサーバーにftpで接続し探したがファイルが見つかりません。 mysqlとphpはutf8で設定しています。 niftyサーバーのmysqlは5、phpMyAdminは2,11,9です。

    • ベストアンサー
    • MySQL
  • mySQL 4.0で文字化け

    はじめまして、PHP+mySQLでプログラムを勉強中の初心者です。 PHPからインサートした日本語データをphpmyadminで確認するとデータが化けています。SQL文自体をPHPで表示させると文字化けせずにちゃんと表示されます。  mySQL 4.1以降なら SET NAMESというコマンドをDB接続後に入れることで問題が回避できると言うことですが、mySQL 4.0ではコマンドエラーになってしまいます。 レンタルサーバーなので、PHPのアプリケーション側で対応できたらと考えています。 何かよい方法がないでしょうか? PHP 4.3.11は mySQL 4.0.27です。 PHPのキャラクターはutf-8, mySQLのCharactersetは latin1となっていました。 よろしくお願いします。

    • ベストアンサー
    • MySQL