2016-07-13 160 views
0

我有一個設置了目錄中所有文件名稱的表格。我希望能夠從表和目錄中刪除所有具有特定屬性的文件。例如,如果條目沒有name那麼我想刪除它。我想使用的sql語句是delete from master where name = null,但是我無法從目錄中刪除該文件,因爲我無法確定要刪除哪個文件。在我刪除它們之前,有沒有辦法將表中的條目中的值存儲在數組中?從表格中刪除條目並存儲已刪除條目的值

+0

在刪除查詢之前,您可以運行select查詢。然後您可以將文件名稱r刪除查詢。 –

回答

0

做一個選擇第一:

SELECT * FROM master WHERE name = null 

然後存儲在一個變量的結果,您可以用unlink($fileName)刪除這些文件。

如果要有效地做到這一點的SQL的速度,去爲你

DELETE FROM master WHERE name = null 

不過,我個人將通過文件循環,並做單獨像這樣:

$fileNames = your_sql_select_function("SELECT filename FROM master WHERE name = null"); 
    foreach($fileNames as $fileName) { 
     if(unlink($fileName)) { 
      your_sql_delete_function("DELETE FROM master WHERE filename = '$fileName'");    
     } 
     else { 
      // error report, do not delete it from database yet 
      // if you delete it, you won't be able to get the name later 
      // and the file will just hang in there until you 
      // handle it some other way 
     } 
    } 

當然你必須將your_sql_select_function和your_sql_delete_function替換爲您將用於處理mysql的函數