2012-04-06 14 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のQuantityは整数か文字列(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

関連する問題