アップロードした画像の削除に問題があります。
データベースに挿入してアップロードしますが、削除はしません。
例:modelImagesとModelの2つのテーブルがあります。Modelでは、1つのメイン画像のパスを保存しますが、modelImageでは多くの画像が存在する可能性があります。テーブルはmodelIDを介してリンクされています。
これは、パスがどのように見えるかの例です:img / 1/1/someImageName.png。
(最初の1-makerID、2番目の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テーブルからすべての画像が削除され、2番目のコードを使用すると、モデルテーブルから1つの画像が削除されます。
しかし、それらを一緒に使用すると、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/...
結論:両方のクエリを一緒に使用すると、リンク解除は機能しません。