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

标签 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);
}

最佳答案

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

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

然后使用MySQL的in查看表格

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

没有循环!

关于php - 将文件夹内容与 mysql 数据进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14764788/

相关文章:

PHP:面向对象的代码 - 找不到类 'x',但有

mysql - 将触发器添加到我的 H2 数据库中的每个表

java - 如何使用 XmlStreamReader 将 XML 文件的全部内容作为字符串获取?

php - 错误 :The filename try. xlsx 在 excel_reader2.php 中不可读

javascript - Firebase JWT 身份验证

php - 模型的属性如何在 Livewire Laravel 中默认为原始属性

MySQL : can't figure out what's wrong with this LEFT JOIN query

Mysql确定是否更新找到行,即使没有改变

java - 如何递归搜索文件并跳过权限不足的文件?

java - 如何使用java在Rest Web服务中下载不同类型的文件