我想检查此文件夹中是否有任何不在 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/