删除文件和记录

时间:2012-04-04 21:59:34

标签: php sql sql-delete delete-file

我有以下代码从数据库中删除记录。但是,我希望它也从服务器中删除关联的文件。其中一列包含文件的路径。有人可以解释我将如何使用unlink函数吗?

<?php

 include('config.php');

 if (isset($_GET['id']) && is_numeric($_GET['id']))
 {    
     $id = $_GET['id'];      
     $result = mysql_query("DELETE FROM images WHERE id=$id")     
     or die(mysql_error());      
     header("Location: view.php");
 }   
 else    
 {
     header("Location: view.php");
 }

?>

3 个答案:

答案 0 :(得分:2)

在其他任何事情之前,请修复SQL injection个洞。

要回答您的问题,首先您必须选择记录以获取有关该本地文件的详细信息。一旦你破坏了数据库记录,你就丢失了存储文件位置的唯一地方,所以首先获取该数据。

这是伪代码:

  1. 获取文件位置
  2. 删除文件
  3. 删除数据库记录

答案 1 :(得分:1)

您可以先执行查询以检索图像名称,然后只需删除文件:

unlink($theFilenameRetrievedFromDb);

答案 2 :(得分:1)

您必须先向数据库创建一个select语句,以了解文件的路径。完成此操作后,您可以在此路径上使用取消链接,然后创建删除声明。