【问题标题】:PHP copying and deleting file and deleting record from databasePHP复制和删除文件并从数据库中删除记录
【发布时间】:2014-02-13 09:12:09
【问题描述】:

当用户点击我的表单上的删除按钮时,此代码会运行。我正在尝试将文件 $picfile 从“/pics/”复制到“/pics/deletedrecordpics/”,然后删除原始文件。最后,从数据库中删除记录。从数据库中删除记录有效,但复制文件并删除原始文件无济于事。错误日志中没有错误,所以我真的很困惑为什么这段代码没有像我认为的那样运行。

   $sql = ("select picfile,title,author from $table where id=$delete");             
   $file=mysql_query($sql);
   $resrow = mysql_fetch_row($file); 
   $picfile = $resrow[0]; 
   $title = $resrow[1]; 
   $author = $resrow[2];     
   copy("pics/".$picfile,"pics/deletedrecordpics/".$author." - ".$title." - ".$picfile);    
   unlink("pics/".$picfile);
   $sql = ("DELETE FROM $table WHERE id=$delete");
   $result = mysql_query($sql);

【问题讨论】:

  • 向我们展示$picfile authortitle 的值是什么样的
  • 相对路径有时并不是你想象的那样。您可以尝试使用 $_SERVER['DOCUMENT_ROOT'] . '/pics/... 之类的内容来确保路径正确。
  • 运气不好。不过还是谢谢。

标签: php mysql database sql-delete file-copying


【解决方案1】:

为确保 unlink 可以正常工作,请检查您的权限设置是否正确,以及 unlink 在服务器安装上是否可用。

如果“/deletedrecordpics”是一个不存在且尚未创建的目录,则复制可能无法正常工作。

【讨论】:

  • 嗯,奇怪的部分是在我位于“/adminpanel”的控制面板上的删除按钮中具有几乎相同的代码,并且它运行良好。代码是相同的,除了我在所有“pics/”之前使用 $id 而不是 $delete 和“../”,因为它位于管理面板文件夹中。权限是正确的并且文件夹存在,因为代码适用于该页面。我知道 $delete 是 gettimg 设置,因为记录已从数据库中删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 1970-01-01
  • 1970-01-01
  • 2010-10-04
相关资源
最近更新 更多