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