[PHP-users 35785] Re: PHP-MySQL間のデータ受け渡しが不調、教えてください

Kenji Suzuki kenji.uui @ gmail.com
2013年 7月 4日 (木) 14:25:10 JST


Kenji です。


On Thu, 04 Jul 2013 14:20:30 +0900
宮原 <miyafamly @ jeans.ocn.ne.jp> wrote:

> Noriといいます。
>  以前、以下の質問をしまして、「スミイ」さんから
> 「mbstring.internal_encoding」を修正したら、とご教授いただき、ありがとう
> ございました。
>  php.iniファイルの1870行に書かれていたのは、「EUC-JP」でした。

たぶんですが、

;mbstring.internal_encoding = UTF-8

の先頭の「;」を削除してください。コメント記号です。


// Kenji


>  さらに、「internal_encoding」で検索したところ、1065行に
>   ;iconv.internal_encoding = ISO-8859-1
>  とありましたので、これも「UTF-8」に書き換えました。
>  作業は、TeraPadで行い、php.iniファイルを上書きし、XAMPPを再起動して動
> 作を確認しました。
>  しかし、前と全く同じで、DBへの漢字データ書き込みは空欄のままでした。
> php文として「SET item_name="Apple"」と書いたものは、Appleが入力された。
>  再度、「print mb_internal_encoding();」を実行したところ、戻り値は
> 「ISO-8859-1」とphp.iniファイルの変更が反映されていませんでした。
> 
>   php.iniファイルを書き換え後、組み込みのために特別の操作が必要でしょうか?
>  あるいは、もっと別の個所を変更しなければならないのでしょうか?
> 
>  何かご存じの方、教えていただけませんでしょうか?
> 
> =============================7月1日投稿文===============================
>  自宅のPC(Windows Vista Home Premium)にXAMPPを入れ、スタンドアロンで画
> 面からMySQLにデータを挿入 しようとしています。
>  XAMPP ; Vr. 1.8.1
> PHP   ; Vr. 5.4.7 です。
>  「たにぐちまこと著」の「よくわかるPHPの教科書」に従って進んできました。
>  MySQLのAdminからデータベースをCreateし、テーブルを設定して、各蘭にSQL
> コマンドで日本語のデータを入れる事ができまし た。
>  続いて、以下のプログラムで既存の「my_item」テーブルにデータを入力しよ
> うとしました。
>  <?php
> mysql_connect('localhost', 'root', '') or die(mysql_error());
> mysql_select_db('mydb') or die(mysql_error());
> mysql_query('SET NAMES UTF8');
> 
> mysql_query('INSERT INTO my_items SET maker_id=1, item_name="もも",
> price=210,
> keyword="缶詰,ピンク,甘い", sales=0, created="2013-07-01",
> modified="2013=07-01"')
> or die(mysql_error());
> echo '<br />データを1行挿入しました。';
> ?>
>  結果は、「データを1行挿入しました。」という返信が返ってきたのですが、
> テーブルを開いてみると「name」「keyword」蘭が空欄のま まで、データが入力
> されていません。数値は正しく入力されていました。
> 
>  PHPプログラムの「charset」は「UTF_8」になっていますし、MySQLデータベー
> スの「サーバー接続の照合順序」も 「utf8_general_ci」になっています。
>  一方、PHPの内部設定を「php.ini」で調べてみると、814行目に
> 「default_charset="UTF-8"」とありました。
>  ここまでは、問題ないように見えたのですが、内部のエンコード方法を以下の
> 文で出力して見ました。
>   <?php
> print mb_internal_encoding();
> ?>
>  その結果、「ISO-8859-1」と出力されました。
>  この内部エンコーディング方式が問題ではないかと思いますが、変更方法をご
> 存じの方、教えていただけないでしょうか。
>  どのようにすれば、phpからMySQLに日本語データが移るのか、お教えくだ
> さい。
>  よろしくお願いいたします。
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3


PHP-users メーリングリストの案内