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

宮原 miyafamly @ jeans.ocn.ne.jp
2013年 7月 6日 (土) 15:24:05 JST


Noriといいます。

 phpからSQLへのデータ挿入のプログラムは以下の通りです。
======================================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF_8" />
<title>PHP-MySQLトレーニング</title>
</head>
<body bgcolor="#f5f5f5">
<center>
 <table border="0" width="400">
    <tr>
      <th><h1>トップページ</h1></th>
    </tr>
    <tr>
      <td bgcolor="#ffffff" width="230" valign="top" align="center"
height="641">
      <table border="0" width="200">
        <tr>
          <td>
          <table border="0" bgcolor="#3366ff">
            <tr>
              <td width="183" height="37" bgcolor="#c8d9f9">
                <b>PHP処理</b></td>
            </tr>
          </table></td>
        </tr>
        <tr>
          <td>
		<?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="piech",
price=210,
		keyword="缶詰,ピンク,甘い", sales=0, created="2013-07-04",
modified="2013=07-04"')
		or die(mysql_error());
		echo '<br />データを1行挿入しました。';
		?>
	 </td>
        </tr>
      </table>
      </td>
</table>
</center>
</body>
</html>
========================================================================
 ブラウザはIE-9を使っており、エンコードは日本語自動選択です。確認したら
シフトJISになっていました。他のエンコード方式では表示の際文字化けが起こ
ります。

 上記のプログラム実行後、データベースの「my_items」テーブルの
「item_name」には「piech」が入っていますが、「keyword」は空欄になってい
ます。

 なお、「mysql_query('SET NAMES UTF8');」をはずすと、「keyword」欄には
文字化けしたデータが入ります。

 また、中村@東京さんからご指導いただいた、phpプログラムをフォームのリ
クエストを受け取るプログラムに組み込んでみました。
======================================================================
<?php
 mb_language("japanese");
 mb_internal_encoding("UTF-8");

 $name = htmlspecialchars( $_REQUEST['my_name'], ENT_QUOTES);
 $name1 = $_REQUEST['my_name'];
?>
<p>ようこそ<?php print($name); ?>さん。</p>

<p>オリジナルの氏名は:<?php print($name1); ?>さん。</p>

<?php
echo '<pre>';
print_r($_POST);
?>
======================================================================
結果は
====================================
ようこそさん。

オリジナルの氏名は:みやはらさん。

Array
(
)
======================================
と表示されました。

 何かご存じの方、教えていただけませんでしょうか?




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