2016-07-13 2 views
0

У меня есть таблица с именами всех файлов в каталоге. Я хочу иметь возможность удалять все файлы с определенным свойством как из таблицы, так и из каталога. Например, если в записи нет name, я хочу ее удалить. Заявление sql, которое я думал об использовании, было бы delete from master where name = null, но тогда я не смог бы удалить файл из каталога, потому что у меня не было бы способа определить, какой файл удалить. Есть ли способ сохранить значения из записей в таблице в массиве до того, как я их удалю?Удалите записи из таблицы и сохраните значение из удаленных записей

+0

Перед запросом на удаление вы можете запустить запрос выбора. Затем вы можете иметь имя файла даже afte 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

Смежные вопросы