[PHP-users 9924] Re: (無題) 改め QUERY_STRING 変数について

久米 恒太郎 php-users@php.gr.jp
Mon, 9 Sep 2002 14:16:41 +0900 (JST)


先ほどの投稿では情報不足でした。しかも件名を忘れていまし
た。すみません。
以下にエラー内容、DBの仕様、プログラム、起動できた環境
、できなかった環境について記載します。ご参考にして下さい
。まだ必要な情報がありましたらご指摘お願いします。

今回発生しましたエラーメッセージは以下になります。

商品リストにテーブルを挿入
MYSQLに接続してデータ処理します


Notice: Undefined variable: name in c:\program
files\apache group\apache\htdocs\test05a.phtml on line 23

Notice: Undefined variable: price in c:\program
files\apache group\apache\htdocs\test05a.phtml on line 23
insert into tbl_item (i_name,price) values('','')
MYSQLと接続成功しました


--------------------------------------------------------------------------------
db_eigyou に接続成功しました
--------------------------------------------------------------------------------

データの保存に成功しました
以上エラーメッセージです。

使用したDBはmysql-3.23.49で以下の仕様になります。
DB名 		db_eigyou
ユーザー	     super
パスワード	 man
テーブル     tbl_item
+--------+--------------+------+-----+---------+----------------+
| Field  | Type         | Null | Key | Default | Extra    
     |
+--------+--------------+------+-----+---------+----------------+
| i_code | int(11)      |      | PRI | NULL    |
auto_increment |
| i_name | varchar(100) |      |     | 商品名  |          
     |
| price  | int(11)      |      |     | 0       |          
     |
+--------+--------------+------+-----+---------+----------------+
以上DBの仕様です。

今回使用しましたプログラムは以下の(1)、(2)のなります。
ファイル(1)がファイル(2)を呼び出す仕様になっています。
(1)
<html><head>
<title>データ入力</title></head>
<body>
<h1>商品リスト・データ入力</h1>
<p>商品リストにデータを追加します</p>
<form action="test05a.phtml" method="get">
商品名<br />
<input type="text" maxlength="100" size="100"
name="name"/>
<br />
価格<br />
<input type="text" name="price"/>
<hr />
<input type="submit"><input type="reset">
</form>
</body></html>
(2)(ファイル名test05a.phtml)
<html><head>
<title>データ入力SQL処理</title></head>
<body>
<h1>商品リストにテーブルを挿入</h1>
<p>MYSQLに接続してデータ処理します</p>
<?php
$dbname = "db_eigyou";

//フォームから送られてきたデータを配列に格納
//まずURLデコード
//$QS = urldecode($QUERY_STRING);

//&で分割
//list($argA,$argB) = split("&",$QS);

//それぞれを=で分割
//list($nm,$name) = split("=",$argA);
//list($pr,$price) = split("=",$argB);

//SQL文を変数$strSQLにセット
$strSQL ="
	insert into tbl_item (i_name,price)
	values('$name','$price')";
print $strSQL;

$link = mysql_connect("127.0.0.1", "super", "man")
	or die("<h1>接続失敗</h1>");
print "<p>MYSQLと接続成功しました</p><hr />";

//データベースの選択
$con = mysql_select_db($dbname,$link)
	or die("データベース接続失敗");
if($con){print "$dbname に接続成功しました";}

//データベースにSQL文を発行
$res = mysql_query("$strSQL")
	or die("<p1>SQL文発行失敗</p1>");
print "<hr/ >";

//正常終了したらJavaScriptで入力ページに戻す
if($res){
	print "<p>データの保存に成功しました</p>";
	print "<script language=\"JavaScript\">";
	//print "location.href=\"test04a.html\";";
	print "</script>";
}

mysql_close($link);
?>
</body></html>
以上使用プログラムです。

今回実行できた環境です。
OS:win98、メモリー:64、HD:4G、サーバー:apache_1.3.24
、PHP:php-4.2.2、DB:mysql-3.23.49 
今回実行できなかった環境です。2台あります。
OS:win98、メモリー:192、HD:20G、サーバー:apache_1.3.24
、PHP:php-4.2.2、DB:mysql-3.23.49 
OS:winXP、メモリー:256、HD:30G、サーバー:apache_1.3.24
、PHP:php-4.2.2、DB:mysql-3.23.49 




__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!
http://bb.yahoo.co.jp/