如何根据表中记录的 ID 删除多个图像?

How can I delete multiple images based on an ID of a record from a table?

提问人:Aland Ramirez Araiza 提问时间:10/21/2023 最后编辑:Adrian MoleAland Ramirez Araiza 更新时间:10/23/2023 访问量:43

问:

我有一个系统可以发布带有图像的文章,但是在删除文章时,它只删除了一张图像,而不是从该文章中上传的所有图像。

<?php

include('assets/system/core.php');

$id = $_GET['id'];

$consulta = mysqli_query($db, "SELECT * FROM images WHERE id2 = '$id' ");
$registro = mysqli_fetch_assoc($consulta);

$ruta = $registro['file_name'];

unlink("uploads/".$ruta);

$query = mysqli_query($db,"DELETE FROM amenidades WHERE id = '$id'");
$query2 = mysqli_query($db,"DELETE FROM images WHERE id2 = '$id'");
$query3 = mysqli_query($db,"DELETE FROM propiedades WHERE id = '$id'");
$query4 = mysqli_query($db,"DELETE FROM visit_days WHERE id = '$id'");
$query4 = mysqli_query($db,"DELETE FROM comments WHERE prpdad_id = '$id'");
header("LOCATION: ".$web_settings['weblink']."mispropiedades.php");

如何从数据库中删除与记录对应的所有图像?

PHP 的 PHP-8

评论

1赞 ADyson 10/21/2023
根据文档,mysqli_fetch_assoc一次返回一行。若要获取所有行,请使用 mysqli_fetch_all() 并遍历结果
4赞 Dharman 10/21/2023
警告:您对 SQL 注入持开放态度,并且应该使用参数化的预准备语句,而不是手动构建查询。它们由 PDOMySQLi 提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行,您仍然面临数据损坏的风险逃跑是不够的!
1赞 Nico Haase 10/23/2023
毕竟,您没有共享任何尝试删除多个图像的代码。不应该有任何循环吗?
0赞 Peter Krebs 10/23/2023
使用 sql 查询 “WHERE IN”。除了已经提到的 SQL 注入问题之外,删除某些内容不应该是一个简单的 GET 请求。也被分配了两次 - 以防万一引起混乱。$query4

答: 暂无答案