Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除文件和记录_Php_Sql_Sql Delete_Delete File - Fatal编程技术网

Php 删除文件和记录

Php 删除文件和记录,php,sql,sql-delete,delete-file,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 i

我有以下代码从数据库中删除记录。但是,我希望它也从服务器上删除一个关联的文件。其中一列包含文件的路径。有人能解释一下我将如何在这里使用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");
 }

?>

您可以先执行查询以检索imagename,然后删除文件:

unlink($theFilenameRetrievedFromDb);

在做任何事情之前,先把你的洞修好

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

就是这样,在伪代码中:

  • 获取文件位置
  • 删除文件
  • 删除数据库记录

  • 您必须首先对数据库执行select语句,才能知道文件的路径。完成此操作后,您可以在此路径上使用unlink,然后执行delete语句。

    在删除之前从表中选择所需的信息。
    是数值的()
    不会处理所有情况?它会首先阻止查询运行,但如果if()发生更改,代码的其余部分是等待发生的注入攻击。