2016-02-12 148 views
1

我的服务器存储2个视频文件和2个数据库记录。使用PHP从服务器删除文件

我想从我的数据库中删除它,如果用户选择删除文件。

脚本从数据库中删除:

$result = mysqli_query($db_connection , "DELETE FROM `viewvideo` WHERE `video_id`='".$video_id."'"); 
$result2 = mysqli_query($db_connection , "DELETE FROM `video480p` WHERE `video_id`='".$video_id."'"); 

使用这个脚本来检索文件路径:

$deleteOrigVideo = mysqli_query($db_connection, "Select video_link FROM viewvideo WHERE `video_id`='".$video_id."'"); 
$delete480pVideo = mysqli_query($db_connection, "Select video_link FROM video480p WHERE `video_id`='".$video_id."'"); 

删除文件:

unlink($deleteOrigVideo); 
unlink($delete480pVideo); 

取消链接部分不工作。我得到的unlink()预计参数1是一个有效的路径,

原始视频存储在和480p的视频是在原\ 480P

var_dump($deleteOrigVideo, $delete480pVideo);

输出库:

object(mysqli_result)[2] 
     public 'current_field' => null 
     public 'field_count' => null 
     public 'lengths' => null 
     public 'num_rows' => null 
     public 'type' => null 
    object(mysqli_result)[3] 
     public 'current_field' => null 
     public 'field_count' => null 
     public 'lengths' => null 
     public 'num_rows' => null 
     public 'type' => null 
+0

你可以显示什么'var_dump($ deleteOrigVideo,$ delete480pVideo);'返回? – Will

+0

检查文件权限。 – jjwdesign

+0

此外,您可能应该使用准备语句,而不是向查询中注入'$ video_id',但这不在此问题的范围之内;) – Will

回答

3

$ deleteOrigVideo和$ delete480pVideo不是字符串;他们是MySQLi查询结果对象

你会想要做这样的事情(重复第二视频):

if($deleteOrigVideo) { 
    while ($videoEntry = $deleteOrigVideo->fetch_assoc()) { 
     unlink($videoEntry['video_link']); 
    } 
} 

我假设通过“$的VideoEntry [‘VIDEO_LINK’]”返回的路径地步,你希望他们至。

+0

你不需要一个while循环,他的查询搜索一个特定的ID。 – Barmar

+0

我想到了这一点,但想知道它是否会在未来帮助人们。虽然有效。 – Hiphop03199

相关问题