我有一个mysql数据库,其中包含以下格式的表:
ID:1
日期:2010-12-19
图片来源:5d61240f-7aca-d34b-19-12-10-15-36.jpg
文字说明:圣诞快乐
我想创建一个php脚本,它检查此表中的每一行,并检查图像是否存在于我服务器上的gallery文件夹中。如果图像不在gallery文件夹中,那么我想从我的数据库中删除该行。关于如何做到这一点的一些指示将非常感激。
谢谢!
答案 0 :(得分:0)
好的...使用glob()
或DirectoryIterator
,file_exists()
,mysql_
或mysqli_
函数以及'DELETE FROM images WHERE id = ?'
。 :)
希望这有帮助!如果您提供更多信息,我可以给您更详细的建议。到目前为止你尝试了什么?
编辑:等等,我误读了。您不需要目录功能,因为您已经拥有文件名。dirname(__FILE__)
可能有用。
答案 1 :(得分:0)
试
<?php
define ("GALLERY_ROOT", "/path/to/gallery/" );
$mysqli = new MySQLi ($host, $username, $password, $db);
$result = $mysqli -> query ("
SELECT
id,
image
FROM
table
");
if ( $result ){
while ($row = $result->fetch_assoc()) {
if ( !is_file (GALLERY_ROOT . $row['image'] ) ){
$mysqli -> query ("
DELETE FROM
table
WHERE
id = '" . $row['id'] . "'
LIMIT 1
");
print "Deleted " . $row['id'] . "<br />";
}
}
$result -> free();
}
$mysqli -> close();
print "Congratz!! All invalid rows has been deleted!";
?>
这是一个快速的,我没有尝试实际运行它。
此外,如果您有很多行,那么您可能想重新考虑一次选择所有行。但是再次告诉我它是如何工作的