2012-04-06 2 views
1

데이터베이스를 양식으로 업데이트 중입니다. 모든 것이 제대로 작동하는지 확인하기 위해 모든 값을 출력하고 있지만 데이터베이스에 추가하면 모든 것이 잘못됩니다. 수량이 20000 인 경우 인벤토리의 수량이 1로 변경됩니다. 이해할 수 없습니다. 난 아직도 MySQL을 배우고하지만 내가 당신에게 필터링되지 않은 양식 데이터를 반향하고 데이터베이스에 업데이트하는 방법에 대한 일반적인 강의를 아끼지 않습니다MySQL 업데이트 정책이 올바르게 작동하지 않습니다.

<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    require("serverInfo.php"); 
    for($i = 0; $i < 10; $i++){ 
     $quantity = $_POST['quantity'.$i]; 
     $company = $_POST['company'.$i]; 
     $size = $_POST['cardSize'.$i]; 

     if(isset($_POST['box'.$i])){ 
      echo $quantity . "<br/>"; 
      echo $size . "<br/>"; 
      echo $company . "<br/>"; 
      mysql_query("UPDATE `printRun` SET Quantity = '$quantity' AND Size = '$size' where status='Open' AND Company = '$company'"); 
     } 
    } 
    mysql_close($link); 
} 
?> 
+0

은 "유형"으로 무엇을 설정보십시오? 어떤 캐릭터 한도를 주셨습니까? –

+0

즉, 데이터베이스 columnn 수량은 정수 또는 문자열 (varchar)입니까? –

+0

은 TEXT로 설정됩니다. – shinjuo

답변

3

mysql_query("UPDATE `printRun` SET Quantity = '$quantity', Size = '$size' where status='Open' AND Company = '$company'"); 
+0

실제로 수정되었습니다. 감사 – shinjuo

4

을 자극한다 ....하지만 update 구문이 올바르지 않습니다. 대신 (열 목록에 AND)

UPDATE를이 시도하지 = '$ 수량', 크기 = '$ 크기'상태 = '열기'AND 회사 = '$ 회사

printRun SET 수량

http://dev.mysql.com/doc/refman/4.1/en/update.html

+1

나는 당신이 코드를보다 효과적으로 유지하고 SQL 주입과 같은 가장 공격을 피하는 데 도움이 될 MySQL 준비 문을 가장 확실히 조사 할 것이다. – philwinkle

관련 문제