我在删除上传的图像时遇到问题。
它插入数据库并上传就好了,但不会删除。
示例:我有两个表,modelImages和Model。在模型中我保存了一个主图像的路径,但在模型图像中可能有很多。这些表通过modelID链接。
这是路径的示例:img/1/1/someImageName.png。
(第一个 1 - makerID,第二个 1 - modelID)。
include('connect.php'); //connect to database
$modelID=$_GET['modelID'];
$makerID=$_GET['makerID'];
$path="img/".$makerID."/".$modelID."/";
if ($stmt = $mysqli->prepare("SELECT images FROM modelImages WHERE modelID='$modelID'")) {
$stmt->execute();
$stmt->bind_result($images);
while ($stmt->fetch()) {
if($images!=$path){
unlink($images);
}
}
$stmt->close();
}
else {
printf("Prepared Statement Error: %s\n", $mysqli->error);
}
if ($stmt = $mysqli->prepare("SELECT mainImage FROM model WHERE makerID='$makerID' AND modelID='$modelID'")) {
$stmt->execute();
$stmt->bind_result($mainImage);
while ($stmt->fetch()) {
if($mainImage!=$path){
unlink($mainImage);
}
}
$stmt->close();
}
else {
printf("Prepared Statement Error: %s\n", $mysqli->error);
}
当我只使用第一个代码时,它会从modelImages表中删除所有图像,如果我只使用第二个代码,它会从模型表中删除一个图像。
但是如果我一起使用它们,我会得到unlink()
错误:
Warning: unlink(img/1/1/image1.png) [function.unlink]: No such file or directory in /home/...
Warning: unlink(img/1/1/image2.png) [function.unlink]: No such file or directory in /home/...
Warning: unlink(img/1/1/image3.png) [function.unlink]: No such file or directory in /home/...
Warning: unlink(img/1/1/image4.png) [function.unlink]: No such file or directory in /home/...
结论:如果我同时使用这两个查询,则取消链接将不起作用。