如何更新单行而不是所有行

问题描述 投票:0回答:1

我正在开发一个 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 ');
}


}


?>
php mysql
1个回答
0
投票

您未在更新查询中使用任何条件。

$query ="update spares set date='$date', part='$part', description='$description', serial='$serial',  supplier='$supplier',  qty='$qty',  batch='$batch' where id=$idnew";

除此之外,您还可以接受 SQL 注入。检查这个以防止它。

© www.soinside.com 2019 - 2024. All rights reserved.