2016-02-12 38 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

相關問題