【问题标题】:Delete an image from a file while also deleting the mysql row从文件中删除图像,同时删除 mysql 行
【发布时间】:2012-09-06 00:01:51
【问题描述】:

我有一个管理面板,它有一个页面允许管理员从数据库中删除行。他们可以删除的每一行都有一个存储在服务器目录中的关联图像。图像路径也存储在数据库中。

我需要的是当用户从表中删除一行时,我希望它也删除图像。

这是我的 PHP 从表中删除行:

include('includes/temp.config.php'); 


    if (isset($_GET['id']) && is_numeric($_GET['id']))
    {
            // get the 'id' variable from the URL
            $id = $_GET['id'];

            // delete record from database
            if ($stmt = $link->prepare("DELETE FROM templates WHERE id = ? LIMIT 1"))
            {
                    $stmt->bind_param("i",$id);     
                    $stmt->execute();
                    $stmt->close();
            }
            else
            {
                    echo "ERROR: could not prepare SQL statement.";
            }
            $link->close();

            // redirect user after delete is successful
            header("Location: edit.php");
    }
    else
    // if the 'id' variable isn't set, redirect the user
    {
            header("Location: edit.php");
    }

但我什至不知道从哪里开始删除相关图像...任何帮助将不胜感激。

【问题讨论】:

  • 在手动搜索框中输入“删除”或在 google 中输入“使用 php 删除文件”是您开始的地方
  • 嗯...谢谢,但我不会在这里问我是否还没有这样做。我知道那里有关于如何做这样的事情的信息,但我试过的都没有。
  • “但我尝试过的所有方法都不起作用”,这将是一个不同的问题,一个更好的问题,类似于:这是我尝试过的代码......这是我的结果预期的......但这就是实际发生的事情......

标签: php mysql mysqli sql-delete delete-file


【解决方案1】:

unlink 函数怎么样?

【讨论】:

  • 我用 unlink 功能尝试了一些东西,但我似乎无法让它正常工作
【解决方案2】:

我会要求用户指定图像,从数据库中选择图像路径,使用我刚刚检索到的图像路径从文件系统中删除图像,然后从数据库中删除该行。

【讨论】:

    【解决方案3】:
    <?php
    require __DIR__ . "/config.php";
    
    if( isset($_GET['id'])){
        $id=$_GET['id'];
        $res=mysql_query("SELECT image FROM register  where id= '$id'");
        $row=mysql_fetch_array($res);
        $delete="delete  from register where id= '$id'";
        $de = mysql_query( $delete);
        unlink("upload/".$row['image']);
          if($de)
         {
            header("location:login.php");
         }
         else
        {
          echo "error";
        }
    }
    ?>
    

    【讨论】:

    • 解释一下,这个答案有什么用?
    • 感谢您的回复,但是,如上所述,解释会有所帮助。此外,出于安全目的,您应该使用 PDO 或 MySQLi。
    猜你喜欢
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多