我在这些脚本中写了一个php脚本我从表中删除了所有图像数据但我想删除从我的图像文件夹中删除表中的图像。这里我使用sql self join删除图像。我是什么意思从我的数据库中删除从我的文件夹中删除的图像。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "cribsuite";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "delete t1
from rr2s4_cma_images t1 JOIN rr2s4_cma_images t2
on t1.matrix_unique_id = t2.matrix_unique_id
and t1.ordering > t2.ordering";
//echo $sql;
$vin = mysql_query($sql);
//echo $sql;
if ($conn->query($sql) === TRUE) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . $conn->error;
}
$conn->close();
[![enter image description here][1]][1]
?>
答案 0 :(得分:0)
您需要构建一个要从服务器中删除的图像文件名数组。为此,您需要执行以下操作:
使用您在此处使用的相同WHERE语句运行SELECT查询。
循环遍历SELECT查询的结果,并将每个图像文件名添加到文件名数组中。我建议使用数据库记录的唯一ID作为数组中每个相应元素的键。
一旦构建了该数组,就需要遍历该数组并从数据库中删除该记录,然后从服务器中删除该文件。您可以使用PHP本机的unlink()函数来删除文件。
注意:如果您希望将此脚本设置为按计划执行,我建议您跟踪任何未删除的文件或导致任何错误或警告。这将有助于解决将来可能发生的任何问题。
我希望有所帮助。如果您需要任何澄清,请告诉我。