将文件夹内容与mysql数据进行比较

时间:2013-02-08 02:29:47

标签: php mysql file

我想检查这个文件夹中是否有任何文件名不在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 个答案:

答案 0 :(得分:1)

您可以使用glob获取文件名数组

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

然后使用MySQL的in来检查表

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

没有循环!