2012-01-13 5 views
0

에 데이터 쓰기. insert_new.php에 추가 된 데이터를 게시하는 양식 인 new_entry.php 파일이 있습니다.PHP mysql; 데이터베이스에 데이터를 쓰는 데 조금 어려움이있는 데이터베이스

필드가 채워지고 제출 될 때마다 데이터가 "테이블에 데이터를 추가 할 수 없습니다"라는 오류 메시지와 함께 데이터베이스로 이동하지 않습니다. 모든 아이디어가 있습니까?

NEW_ENTRY.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

$ _POST [ "section"]이 아닌 $ _REQUEST [ "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 열이 숫자가 아닌 것으로 가정합니다. 그럴 수도 있지만 그 전화를하기 위해서는 더 많은 정보가 필요합니다. 숫자이고 '$ price'가 숫자 데이터이면 이것은 완전히 합법적 인 구문입니다. –

0

먼저

<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 :이 작업을 수행하지 마십시오. 당신은 정말로 SQL Injection을 연구해야하거나 매우 유감입니다.

둘째, 가격에 숫자 유효성 검사가 없습니다 (숫자 열로 이동한다고 가정) ... 이것은 또한 나쁜 것입니다. 누군가가 달러 기호 등을 넣으면 어떻게 될까요?

다음으로 테이블 정의 및 연결 코드 (연결 값 아님)를 게시하십시오.

당신이 뭔가를 할 경우에도 더 많은 피드백을 얻을 수 있습니다 :

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

mysql 오류 메시지를 추가 할 때 "알 수없는 열 '필드 목록에'd '이 표시됩니다. –

+0

테이블을 게시하십시오. 정의, 나는 대답이 곧 올 것이라고 생각한다. –

관련 문제