2013-02-08 41 views
0

我想檢查是否有任何文件名在這個文件夾中不在mysql數據庫中,但我似乎找不到一種方法來做到這一點,因爲獲取MySQL數據的循環必須在閱讀目錄的循環內(據我所知),這會擾亂整個過程。是否有另一種方式做到這一點:比較文件夾內容與MySQL數據

if ($handle = opendir('video/test')) { 

    while (false !== ($entry = readdir($handle))) { 
     if ($entry !== "." && $entry !== ".."){ 

    $delfile = "SELECT * FROM files WHERE filename <> '$entry'"; 
    $delfile = $db->query($delfile); 

    while($row = $delfile->fetch_assoc()){ 
     echo $row['filename']; 

     } 
    } 
    } 
    closedir($handle); 
} 

回答

1

可以使用glob獲取文件名

$filenames = glob('video/test'); 

然後使用MySQL的in檢查表

$sql = sprintf('select * from files where filename not in ("%s")', implode('","', $filenames)); 

無環陣列!

+0

看起來不錯。我如何將mysqli連接到這個 – user2014429