2012-05-08 5 views
-3

PHP와 SQL 스크립팅에 익숙하지 않아서 쉽게 이해할 수없는 쉬운 수정입니다. 자산 테이블이있는 InventoryControl이라는 데이터베이스가 있습니다.PHP 폼이 MySQL 데이터베이스에 게시되지 않습니다

<?php 
echo "PHP TEST!"; 
echo $_POST["assettag"]; 
$con=mysql_connect("localhost","sampleuser","samplepass"); 
if (!$con) 
    { 
    echo "CONNECTION FAILED!"; 
    die('Could not connect: ' . mysql_error()); 
    } 
echo "I succeeded!"; 
mysql_select_db("InventoryControl", $con); 

$sql="INSERT INTO assets (asset_tag, manufacturer, model, type, location, decomissioned, employee_owner, computer_name, price, day, month, yea$ 
VALUES 
('$_POST[assettag]', asdf, asdf, asdf, 0, 0, asdf, asdf, 0, 0, 0, 0)"; 
echo "Posted!"; 
if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    echo "I didn't work"; 
    } 
echo "1 record added"; 

mysql_close($con); 


?> 

I :

<form action="insertasset.php" method="post"> 
Asset Tag: <input type="text" name="assettag" /> 
<input type="submit" /> 
</form> 

가 On이이 PHP 스크립트를로드, 제출 : 나는 PHP와 SQL의 주위에 내 방식을 파악할 수 있도록 테스트를 위해, 나는 하나의 형태와 매우 간단한 웹 페이지를했습니다 거기에 여러 줄의 에코가 추가되어 테스트가 실패한 부분을 볼 수 있지만 PHP 스크립트를 실행했을 때 나타나는 유일한 응답 문제가 붙어 있습니다. "PHP 테스트!" 그런 다음 이전 양식에서 방금 게시 한 정보. 그래서, PHP 스크립트를로드하고 그것을 폼에서 데이터를 게시하는 알지만 테이블에 가져올 수 없습니다. 테이블에는 필자가 아는 한 열을 채우기위한 요구 사항이 없습니다 (나는 아주 기본적인 매개 변수로 설정할 수 있습니다. asset_tag는 기본 키입니다. 그렇지 않으면 데이터를 보관할 열만). 누구든지 초보자에게 도움을 줄 수 있다면 큰 도움이 될 것입니다. 당신이는 mysql_query를 사용하는 경우

+1

중지되지 않는'mysql_로 *'확장하고 [더 적절한 MySQL의 API를 선택] (http://us3.php.net/manual/en/mysqlinfo.api.choosing.php) – cspray

+1

당신의 문자열을 사용 'asdf'는 VALUES리스트 내에서 'asdf'로 인용되어야합니다. –

+0

그건 그렇고, 저는 $ sql에 대한 줄을 알고 있습니다 = ... 이상한 구문을 가지고 있습니다. 왜냐하면 저는 퍼티에서 복사하여 붙여 넣기를 시도했기 때문에 제가하지 않았기 때문입니다. 모든 텍스트를 얻으십시오 –

답변

1

() 함수는 다음과 같이 사용 :

mysql_query("...") or die(mysql_error()); 

그런 식으로하면 오류가 발생합니다.

문제가 발생하면 INSERT INTO 문에서 값을 작은 따옴표로 묶어야합니다.

그러나 작은 따옴표 열 이름도 사용할 수 있습니다. 때때로 열 이름은 "주문"과 같은 특별한 키워드가 될 수 있습니다.

mysql_error()와 함께 사용하면 오류 세부 사항을보다 명확하게 볼 수 있습니다.

+0

mysql_error() 함수가 반환하는 것을 볼 수 있으면 좋겠지 만 슬픈 듯이 "PHP TEST!" 그리고 에코 "$ _POST ["assettag "] –

+1

mysql_select_db와 mysql_connect도 똑같은 것을 넣으십시오. –

+0

서버의 오류 로그를보고 거기에 뭐가 있는지 확인 했습니까? – andrewsi

0
$asset=$_POST['assettag']; 
$sql="INSERT INTO assets VALUES ('".$asset."', 'asdf', 'asdf', 'asdf', 0, 0, 'asdf', 'asdf', 0, 0, 0, 0)"; 
echo "Posted!"; 
if (!mysql_query($sql)) 
{ 
die('Error: ' . mysql_error()); 
echo "I didn't work"; 
} 
관련 문제