0

私は学習している単純で安全でないローカル データベースを持っています (はい、今はまだ MySQL を使用しています)。データベースの行をテーブルで表示し、編集ボタンをクリックすると、各列で選択された単一のレコードが表示されます。更新して保存するテキスト ボックス。

これは、データベースを更新しようとしている 5 つのテキスト ボックスを表示する編集ページの一部です。

<?php
while ($row=mysql_fetch_array($result))
{
?>
<form action="updateinfo.php" method="post">
<tr>
  <td align="right">Partnumber:</td>
  <td align="left"><input type="text" name="partnumber" value="<?php echo $row['partnumber'];?>"/></td>
</tr> 

ここに私の更新情報があります

<?php
mysql_connect("localhost","name","password") or die("Error: ".mysql_error()); 
mysql_select_db("toner");

$partnumber  = $_POST['partnumber'];
$description = $_POST['description'];
$vendor      = $_POST['vendor'];
$price       = $_POST['price'];
$quantity    = $_POST['quantity'];
$sql         = "UPDATE inventory SET partnumber ='".$partnumber."',description ='".$description."',vendor ='".$vendor."',price ='".$price."',quantity ='".$quantity."' WHERE partnumber = '".$partnumber ."'";

mysql_query($sql) or die ("Error: ".mysql_error());
echo "Database updated.";
header( "refresh:5;url =toner.php" );
?>

データベースが更新されたと表示されますが、変更は行われません。支援をお願いします。はい、インジェクションに対して脆弱であり、PDO または MySQLi を使用する必要があることを認識していますが、私はまだ初心者であり、これが私が選択した場所です。学習を開始します。ありがとうございました。

4

2 に答える 2

0
<?php
while ($row=mysql_fetch_array($result))
{
?>
<form action="updateinfo.php" method="post"
<tr>
  <td align="right">Partnumber:</td>
  <td align="left"><input type="text" name="partnumber" value="<?php echo $row['partnumber'];?>"/></td>
</tr> 

このループが 5 回実行される場合:

  1. フォームなしで 5 つの異なるフォームを作成しています。</form>
  2. 1つのフィールドのみを投稿していますpartnumber
  3. UPDATE クエリでは、そのパーツ番号が同じパーツ番号で更新されるため、他のフィールドが投稿されていないため、変更は表示されません
于 2013-02-04T09:23:40.293 に答える