• 締切済み

PHPでMYSQLのデータを読み込んだ時

PHPでMYSQLのデータを読み込んで出力した時、日本語の部分だけ、表示されません。 my.iniには、いろいろ調べて、下のように書いてみました。ちなみに、sjisと書いてあるところは、ujisと書き換えたりもしました。 バージョンは、アパッチが2.0.53、PHPが5.0.4、MYSQLは4.0.20dです。 日本語の部分以外は、ちゃんと表示されているので、文字の設定が間違っているのだと思うのですが、 どなたか、分かる方教えてください。 [WinMySQLAdmin] Server=C:/mysql/bin/mysqld-nt.exe [mysqld] default-character-set=sjis language=C:/mysql/share/japanese [mysql] default-character-set=sjis [mysql-dump] default-character-set=sjis

みんなの回答

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

原因はどこなのか特定しないとわかりません。 ・コンソールでたたいてみて表示されるか? ・SQL文はただしいか ・日本語と英語交じりの文だと英語しか表示しない? ・日本語データはちゃんと入っているか? ・表示部分の文字コードと保存の文字コードが間違っていないか? ・具体的なコードはどのようになっているか? ・表示されない例と表示される例はどのようなものか。

noname#113226
質問者

補足

コンソールって、コマンドプロンプトで打って表示されるかって事ですか? 実際に、やっていることを詳しく説明します。 コマンドプロンプトで、MYSQLにテーブルを作って、PHPで出力しています。 その時のコードは、下の通りです。 <html> <head><title>配列データの取得</title></head> <body> <table border="1"> <?php $host = "localhost"; if (!$conn = mysql_connect($host, "root", "パスワード")){ die("MySQL接続エラー.<br />"); } mysql_select_db("kisop", $conn); $sql = "SELECT * FROM test"; $res = mysql_query($sql,$conn); while($row = mysql_fetch_array($res)) { print("<tr>"); print("<td>".$row["0"]."</td>"); print("<td>".$row["1"]."</td>"); print("</tr>\n"); } mysql_free_result($res); ?> </table> </body> </html> コマンドプロンプトにおいて、select文で日本語のデータはみれますので、データは入っています。 日本語と英語交じりの場合は、英語だけ表示されます(コマンドプロンプトでは、きちんと両方表示されます。) MYSQLの保存の文字コードというは、my.iniの[mysqld] で設定した文字コードですよね? ここって、PHPをEUC-JPで保存してたら、「ujis」にするんですかね?まー、そうしても、問題は、解決しなかったんですけど。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Windows環境でのPHP+MySQL+Apacheの文字化け

    様々なサイトで調べてみたのですが、どうしても文字化けの 解決になりませんでした。 MySQLからデータを取得し、ブラウザへ表示するとデータだけ 文字化けになってしまいます。 現在の設定は下記の通りになっております。 お分かりになる方、どうぞ宜しくお願い致します。 ※PHPのソースコードはEUS、MySQLはSjis 【php.ini】 output_buffering = On output_handler = mb_output_handler magic_quotes_gpc = Off default_charset = Shift_JIS extension_dir = C:/php/extensions extension=php_mbstring.dll mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none 【my.ini】 #This File was made using the WinMySQLAdmin 1.4 Tool #2006/04/28 18:18:42 #Uncomment or Add only the keys that you know how works. #Read the MySQL Manual for instructions [mysqld] basedir=C:/mysql #bind-address=172.20.3.162 datadir=C:/mysql/data #language=C:/mysql/share/your language directory #slow query log#= #tmpdir#= #port=3306 #set-variable=key_buffer=16M default-character-set=sjis language=japanese [mysql] default-character-set=sjis [mysqldump] default-character-set=sjis [WinMySQLadmin] Server=C:/mysql/bin/mysqld-nt.exe user=root password=root default-character-set=sjis

    • ベストアンサー
    • MySQL
  • php5とmysql5の設定

    eucjpで記述したphpのフォームからmysqlにデーターを格納して取り出すDBがあり、日本語表示が化けない設定は出来たのですが同じphpから検索をするとヒットしません。 同じphpスクリプトで別のサーバー(phpとmysqlは同じバージョンです)では問題なく稼働していたので現在のサーバーのphp.iniとmy.cnfの問題だと思うのですが他の似たような状況の方の解決策をなぞってeucjpに統一するなど一通り試したのですがどうもうまく行きません。 ちなみにサーバーは自サーバーでApache/2.2.3 (Debian) 、PHP/5.2.0-8+etch7、mysqlは5.0.32です。 php.iniは mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto (EUC-JPにすると入力後?になる) mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; my.cnfは [client] default-character-set= ujis [mysqld] skip-character-set-client-handshake default-character-set = ujis character-set-server = ujis [mysql] default-character-set = ujis です。よろしくお願いします!

    • 締切済み
    • PHP
  • 文字化けが解消できません…MySQL5.2.1

    OS:WINDOWS XP MySQL5.2.1 Apache2.2.4 php-5.2.1 文字(EUC-JP使用) PHPからテーブルにINSERTした場合、echoできちんと表示できます。 しかし、コマンドプロンプトを開いてテーブルを見ると、 PHPからINSERTした日本語が文字化けしています。 コマンドプロンプトにINSERTで日本語を入力すると、 Query OK と表示されますが、SELECT * FROM で内容を表示すると、 空白で何も表示されません(PHPのechoでも表示されません) 色々調べてみたのですが…どうしても解決できません… 【my.ini】 [client] port=3306 default-character-set=ujis [mysql] default-character-set=ujis [mysqld] port=3306 basedir="c:/mysql5/" datadir="c:/mysql5/data/" default-character-set=ujis init-connect="SET NAMES ujis" skip-character-set-client-handshake [mysqldump] default-character-set = ujis 【SHOW VARIABLES で確認した文字コード】 character_set_client ujis character_set_connectioon ujis character_set_database ujis character_set_filesystem binary character_set_results ujis character_set_server ujis character_set_system utf8 試しに mysql> SET NAMES ujis と入力したりしてみましたが 文字化けしたままになっております。 SHOW CREATE DATABASE と SHOW CREATE TABLE で表示された CHARACTER SETは ujis でした。 my.iniの character-set を ujis に設定した場合、 日本を表示させることはできないのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • MySQLの文字化け(?)解消について

    こんにちは、MySQLを使ってデータベースの操作をしている初心者です。 開発環境は以下の通りです。 Apache Tomchat 4.1 MySQL server 4.1.7 jdk1.5.0 MySQL Command Line Client 上でテーブルを作成し、select*で表示すると日本語の部分が全て??? や???」???になってしまいます。これってやはり文字化けですか? 過去の投稿から MySQLのフォルダにあったmy.iniに 以下の内容を追加してみましたが結果は 変わりませんでした。 [mysqld] basedir=C:/mysql #bind-address=10.146.133.80 #datadir=C:/mysql/data #language=C:/mysql/share/your language directory #slow query log#= #tmpdir#= #port=3306 #set-variable=key_buffer=16M default-character-set=sjis [WinMySQLadmin] Server=C:/mysql/bin/mysqld-max-nt.exe user=root password=root default-character-set=sjis [mysql] default-character-set=sjis [client] default-character-set=sjis [mysqldump] default-character-set=sjis ちなみにjavaアプリケーションで コマンドプロンプト側からコマンドライン引数 として追加指定した日本語についても全て同じように ????になってしまいます。 (ただコマンドプロンプト上では引数で指定した 値のみ、きれいに日本語で表示されます。) 上記内容を追加した後で何かするべきこと、 もしくは上記内容でおかしなところがあれば 教えてください。

    • ベストアンサー
    • MySQL
  • MySQLからACCESSにリンクすると文字化けします

    MySQL初心者です。困っています。教えてください。 PC環境は OS:WindowsXP,ACCESS2000,MySQL5.10ver,ODBC3.51です。 ACCESS側からMySQLにリンクテーブルを張ると、全角が表示されません。 すべて“#Name?”と表示されてしまいます。 またインポートテーブルを作成すると半角は表示されますが、 やはり全角は“?”ですべて表示されます。 コマンドプロンプト上でテーブルに格納されているレコードを表示する場合は、 ちゃんと全角で内容が表示がされています。 MySQL上の「My.iniSetup」には以下の設定をしています。 [WinMySQLAdmin] Server=C:/mysql/bin/mysqld-max-nt.exe [mysqld] basedir=C:/MYSQL default-character-set=sjis [mysql] default-character-set=sjis [mysqldump] default-character-set=sjis [WinMySQLadmin] Server=C:/MYSQL/bin/mysqld-nt.exe 他の方の文字化けする場合などの質問では、 大体がiniファイルの設定が影響するようでしたが、 やはりわたしもこの設定がおかしいのでしょうか? 皆様のお知恵をお貸し下さい。 よろしくお願い致します。

  • MySQL 4.1.10a で日本語入力できない

    以下の環境でPHPとMySQLを使おうと思っているのですが、MySQLのコンソール画面で日本語を入力しようとしても、日本語が表示もされずに消えてしまいます。 mysql> select * from table where data='日本語 ↑ここでエンターを押すと mysql> select * from table where data=' ↑こうなります 過去にも似たような事例は見かけるのですが、参考にして対処しても改善されません。どうしたらよいのでしょうか、すみませんが教えてください。 <以下は環境など> ・FedoraCore2 ・Apache2 ・PHP5.0.4 ・MySQL4.1.10a ■設定ファイル /etc/my.cnf [mysqld] default-character-set = ujis [mysqldump] default-character-set = ujis [mysql] default-character-set = ujis ■起動方法 /usr/local/mysql/bin/mysqld_safe --default-character-set=ujis & ■SHOW CHARACTER SET 以下のように表示されすので、文字コードは入っているように思えるのですが、 どうやって使用すればよいのでしょうか。 mysql> SHOW CHARACTER SET …略… | ujis | EUC-JP Japanese | ujis_japanese_ci | 3 | | sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 | …略… ■Linuxの日本語環境 /etc/sysconfig/i18n LANG="ja_JP.eucJP" SUPPORTED="ja_jp.eucJP:ja_JP:ja"

  • MySQLでJISコードが使えません…。

    初歩的な質問で恐縮です。 環境 WIN XP MySQL4.013 Dosプロンプト上。 MySQLのDOS上でJISコードが使えません…。 WINMySQLadmin.1.4のValiables character set 欄ではlatin→sjisとキチンとなっています。 操作手順は以下の通です。 セットアップ欄で [mysqld] default-character-set=sjis [mysql] default-character-set=sjis [mysql-dump] default-character-set=sjis サーバータイプ「mysqld-nt」を選択。 Save Modicationで書き換えて再起動しました。 設定ではなくDOSで特別な操作方法などがあるのでしょうか。ご存知の方いらっしゃいましたら回答お願いします。

  • PHP+MySQLの文字化けで悩んでいます

    お世話になります。 Windows Server2003で、XAMPPでPHP+MySQLを利用しようとしていますが 文字化けが解消されず困っています。どなたか、お助けいただけないでしょうか。 他では成功していたSJISを使おうと思っていますがうまくいきません。 my.cnfでの[mysqld]や[mysql]などの設定、およびphp.iniのmbstringなどの設定は、 今まで成功していたWindowsやLinuxと同様に行いました。 PHPによる単純な日本語表示もMySQLモニタ上の日本語は問題ありません。 しかし、MySQLからの結果セットを受け取ると文字化けしてしまいます。 たとえば、 $re=mysql_query("SELECT * FROM tb"); while($kekka=mysql_fetch_array($re)){ print $kekka[0]; } などを実行すると「:?w?Z?カ??:」などの表示になってしまいます。 また、PHPからMySQLでINSERTすると、MySQLでも文字化けしてしまいます。 MySQLモニタで「SHOW VARIABLES LIKE 'char%';」を実行すると次のように表示されます。 character_set_client | sjis character_set_connection | sjis character_set_database | sjis character_set_filesystem | binary character_set_results | sjis character_set_server | sjis character_set_system | utf8 知識がなく、悩んでおります。 まことに申し訳ありませんが、どなたかお助けいただけないでしょうか。 どうか、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • MySQLの文字化けに関して

    MySQLとPHP、phpMyadminで開発をした際に、phpMyAdminから 登録した値が、PHPで表示させると文字化けしてしまいます。 手当たり次第環境を調べてみましたが、どうしても原因が掴め ません。 わかる方がいらしたら是非教えて下さい。 《環境》 PHP   php-5.0.2 MySQL  mysql-4.0.21 phpMyAdmin phpMyAdmin 2.7.0 です。 MySQLは、  [mysqld]   default-character-set=sjis  [mysql]   default-character-set=sjis  [mysql-dump]   default-character-set=sjis で設定してあり、 phpMyadminは、  $cfg['DefaultLang'] = 'ja-sjis'  $cfg['DefaultCharset'] = 'SHIFT_JIS' と設定してあります。 もちろんPHPも'SJIS'ですが、、、 本当に困っています。 教えてください。

    • ベストアンサー
    • MySQL
  • PHPとMYSQLの文字コードについておねがいします。

    Apache2、PHP5、MYSQL5.0を使用しています。 当方、PHPの初心者講座などを見てUTF-8で作っていこうと思い設定をしたものの、上手くいかず質問させていただきました。 PHPからQuery文(日本語)を送ってMYSQLのテーブルにINSERTしたのですが、文字化けしてしまいます。 my.iniのdefault-character-set=部分をutf8からsjisやujisなどに変えてやってみたのですが、文字化けの種類(?)が変ってしまうだけでやはり文字化けしてしまいました。 ALTER DATABASE AAA CHARCTER SET utf8をやっても変らず文字化けしてしまい、show variables like 'char%'でCharcterを調べたところ、下記のようになっていました。 charcter_set_client | utf8 charcter_set_connection| utf8 charcter_set_database | utf8 charcter_set_filesystem| binary charcter_set_results | utf8 charcter_set_server | utf8 charcter_set_system | utf8 MYSQLとPHPの文字に関係あるようなところをコピーしました。 どこかおかしなところがあるでしょうか。 ------my.ini----- [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8 ----------------- ------php.ini----- output_buffering = Off extension=php_mbstring.dll [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.encoding_translation = On ------------------ どなたか解決策を知らないでしょうか。よろしくお願いします。

    • 締切済み
    • PHP
このQ&Aのポイント
  • NTV系列の女性アナウンサーたちが婚約するようになったことが話題となっています。
  • 岩本乃蒼アナウンサー(NTV=2020年秋)、後藤晴菜アナウンサー(NTV=2021年)、滝 菜月アナウンサー(NTV=2022年4月)、澤口実歩アナウンサー(YTV=2022年1月)の4名が婚約を発表しています。
  • 澤口アナウンサーは5月12日の「ヒルナンデス!」に出演する予定で、TGC(東京ガールズコレクション)の出演権をかけた戦いが行われます。彼女は「ミヤネ屋」のスタジオからの参加予定です。
回答を見る