通过 php 删除数据库中的行时出现问题

issue while deleting row in database by php

你好,我的数据库中有一个名为 files 的 table,我想通过其 ID 删除一行,但是每当我 运行 代码时,我都会收到“成功删除”的响应,但确实如此不删除行。 这是我的代码。 如果有任何帮助,我将不胜感激。

<?php

require "conn.php";

$id = $_POST["id"];

if($conn){

$sql = "SELECT * FROM files WHERE id LIKE '$id'";
$query = mysqli_query($conn,$sql);
if (mysqli_num_rows($query)>0) {
    $sqlDelete = "DELETE FROM files WHERE id LIKE '$id'";
    echo "Successfully Deleted";
} else {
    echo "Failed to delete";
}

} else {
    echo "Connection Error";
}

?>

我想这个问题是因为数据库中的 id 是 Int 但我正在将字符串传递给它所以我应该如何解决这个问题?

试试这个

 $sqlDelete = "DELETE FROM files WHERE id = ".$id;
 mysqli_query($conn,$sqlDelete );

分配后

$sqlDelete = "DELETE FROM files WHERE id LIKE '$id'";  

你需要

if (mysqli_query($conn, $sqlDelete))
{
 echo "Successfully Deleted";
}

为了执行删除查询。顺便说一句,select 语句是多余的。

请注意您的代码非常不安全并且容易出现 SQLi。使用准备好的语句而不是文本替换。