2012-04-06 61 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

什麼是 「類型」 設置爲?你給他們什麼字符限制? – 2012-04-06 20:35:32

+0

換句話說,數據庫列是數量整數還是字符串(varchar)? – 2012-04-06 20:37:19

+0

istis設置爲TEXT。 – shinjuo 2012-04-06 20:38:59

回答

3

儘量

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

確實解決了它。謝謝 – shinjuo 2012-04-06 20:43:12

4

我就饒你有關呼應,並更新到數據庫未經過濾的表單數據的常用的演講....但你update語法不正確。試試這個(在列列表中沒有AND

UPDATE printRun SET量= '$數量',大小= '$大小',其中狀態= '打開' 及公司='$公司

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

+1

我肯定會研究MySQL準備的語句,它將幫助您更有效地維護您的代碼並防止最公然的SQL注入等攻擊。 – philwinkle 2012-04-06 20:37:41