繁体   English   中英

使用取消链接删除多个文件

[英]Delete more than one file using unlink

嗨,我有这个简单的删除脚本,但是我只能删除文件夹中的一个文件。 我尝试了一些其他的东西来尝试循环取消链接,但它无法正常工作。 有谁知道它是怎么做的?

$id = $_GET['id'];
$sql_get = "SELECT shop.id, shop.overskrift, shop.pris, shop.text, shop_pictures.ShopPictures_id, shop_pictures.shop_pictures_file
            FROM shop INNER JOIN shop_pictures
            ON shop.id = shop_pictures.fk_shop_pictures_shop_id WHERE Id=$id";
$result_get = mysqli_query($connection, $sql_get);
$row = mysqli_fetch_all($result_get);

$sql = "DELETE FROM shop WHERE Id=$id";
$result = mysqli_query($connection, $sql);

$sql = "DELETE FROM shop_pictures WHERE fk_shop_pictures_shop_id=$id";
if(!empty($row)) {
    foreach($row as $data) {
        unlink('../../img/shop_pictures/'.$data['shop_pictures_file']);
    }
}
$result = mysqli_query($connection, $sql);

//header('Location: ../members.php');exit;

您的代码非常容易受到SQL注入的影响,因此您可能要解决这个问题。 但是,您需要遍历结果。

$row = mysqli_fetch_array($result_get); 仅获取一个结果,请确保使用如下所示的内容:

$row = mysqli_fetch_all($result_get, MYSQLI_ASSOC);

if(!empty($row) {
    foreach($row as $data) {
        unlink('../../img/shop_pictures/'.$data['shop_pictures_file']);
    }
}

或者,您可以执行以下操作:

while ($row = mysql_fetch_array($result_get)) {
    unlink('../../img/shop_pictures/'.$row['shop_pictures_file']);
}

那应该为您指明正确的方向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM