我正在开发一个 CRUD 应用程序,并且想在按下更新按钮时更新一行,但出于原因,当我更新记录时。它用新值覆盖所有其他记录。我的表最终所有行的值都相同。
我尝试了下面的代码:
<?php
if(isset($_GET['id']))
{
$id=$_GET['id'];
$query = "select * from spares where id= '$id' ";
$result = mysqli_query($connection, $query);
if(!$result){
die("query Failed");
}
else{
$row = mysqli_fetch_assoc($result);
}
}
?>
<?php
if(isset($_POST['update-table'])){
if(isset($_GET['new_id'])){
$idnew = $_GET['new_id'];
}
$date = $_POST['date'];
$part = $_POST['part'];
$description = $_POST['description'];
$serial = $_POST['serial'];
$supplier = $_POST['supplier'];
$qty= $_POST['qty'];
$batch = $_POST['batch'];
$query ="update spares set date='$date', part='$part', description='$description', serial='$serial', supplier='$supplier', qty='$qty', batch='$batch' ";
$result = mysqli_query($connection, $query);
if(!$result){
die("query Failed");
}
else {
header('location:display.php?update_msg=You have successfully updated the table ');
}
}
?>
您未在更新查询中使用任何条件。
$query ="update spares set date='$date', part='$part', description='$description', serial='$serial', supplier='$supplier', qty='$qty', batch='$batch' where id=$idnew";
除此之外,您还可以接受 SQL 注入。检查这个以防止它。