首页 > 解决方案 > 无法从表中删除一条特定记录

问题描述

我目前对搜索感到沮丧,没有文章可以帮助我。我只想删除一行或记录,但我最终删除了表格上的整条记录

<?php
   // include database connection file
   $databaseHost = 'localhost';
   $databaseName = 'ceksaldo';
   $databaseUsername = 'root';
   $databasePassword = '';

   $conn = mysqli_connect($databaseHost, $databaseUsername, $databasePassword, $databaseName); 

   // Get id from URL to delete that saldo
   $id = $_GET['id'];

   // Delete saldo row from table based on given id
   //$result = mysqli_query($mysqli, "DELETE FROM saldo WHERE id=$id");
   $result ="DELETE FROM saldo WHERE id";
   if (mysqli_query($conn, $result)) {
       echo "Record deleted successfully";
   } else {
       echo "Error deleting record: " . mysqli_error($conn);
   }

   mysqli_close($conn);

   // After delete redirect to Home, so that latest saldo list will be displayed.
   echo "<a href=index.php>Home</a>"
?>

几行的屏幕截图

我希望它自动删除特定数据。我在一些文章中发现他们使用 id 号来删除记录。知道我做错了什么吗?

标签: phpmysqlmysqlidelete-row

解决方案


$result ="DELETE FROM saldo WHERE id";

没有说 id 应该是什么。这将删除每一行!

您应该将查询更新为此,指定要删除的记录。

$result ="DELETE FROM saldo WHERE id = $id";

更大的问题是,在您的代码图片中,您没有 ' id' 列,因此您需要将查询与唯一标识每一行的内容联系起来。您可能需要更新您的表格,或者您可能没有向我们展示整个表格。

警告

Little Bobby您的脚本面临 SQL 注入攻击的风险。了解MySQLi的预处理语句。即使转义字符串也不安全!


推荐阅读