2012-01-13 27 views
0

データベースにデータを追加する際に問題が少しあります。私はinsert_new.phpに追加されたデータをポストするフォームであるnew_entry.phpファイルを持っています。php mysql;データベースにデータを書き込む

フィールドが記入されて送信されるたびに、データが「テーブルにデータを追加できませんでした」というエラーメッセージとともにデータベースに移動しません。

NEW_ENTRY.PHP

<body> 
<form method="post" action="insert_new.php"><!-- form sent to insert_new.php--> 
    Section: <input type="text" name="section"/><br /> 
    Food: <input type="text" name="food"/><br /> 
    Description: <input type="text" name="description"/><br /> 
    Price: <input type="text" name="price"/><br /> 
    <br /> 
    <input type="submit" value="submit"/> 
</form> 
</body> 

INSERT_NEW.PHP

<?php 
include 'library/connect.php';//connect to databse 
$section = $_REQUEST["section"]; // get data from the HTML form on new student form 
$food = $_REQUEST["food"]; 
$description = $_REQUEST["description"]; 
$price = $_REQUEST["price"]; 

mysql_query ("INSERT INTO food_menu (section, food, description, price) VALUES ('$section', '$food', '$description', $price)")/* insert the data to the food_menu table*/ 
    or die ("Could not add the data to table");//error message 

header('Location:index.php');//auto redirect to view page 
include 'library/closedb.php'; 
?> 
+0

$ _REQUEST ["section"]を意味しますか?$ _POST ["section"]ではありませんか? –

+0

'$ _REQUEST'はどこに定義されていますか? –

+3

参考までに、あなたはSQLインジェクションを広く利用できます。 PDOで準備されたクエリを使用することを実際に習得する必要があります。 – Brad

答えて

0

あなたが価格近くMySQLのクエリの最後にミスを持っているようです。

既存のラインで以下のコードを交換してください:

mysql_query ("INSERT INTO food_menu (section, food, description, price) VALUES ('$section', '$food', '$description', '$price')") 

は私に結果を知らせるください。

+0

これは、価格列が非数値であることが問題であることを前提としています。それは可能かもしれませんが、その呼び出しを行うためにはより多くの情報が必要です。数値で、 '$ price'が数値データの場合、これはまったく正当な構文です。 –

0

まず:これをしないでください。あなたは本当にSQLインジェクションを調査する必要がありますか、非常に残念です。

第2に、あなたの価格は(数値列になっていると仮定して)数値の検証はありません...これはまた悪いことです...誰かがドル記号などを入れたらどうなりますか?

次に、テーブル定義と接続コード(接続値ではありません)を送信してください。

あなたのような何かをする場合にも、より多くのフィードバックを得ることができます。

or die (mysql_error());//error message 
+0

mysqlエラーメッセージを追加すると "フィールドリスト 'の"不明なカラム'が表示されます –

+0

テーブルを投稿してください定義、私は答えが来ると思います。 –

関連する問題