업로드 된 이미지를 삭제하는 데 문제가 있습니다.PHP 링크 해제 오류
데이터베이스에 삽입하고 의 미세한 만 업로드하지만 삭제되지는 않습니다.
예 : 나는 두 테이블,modelImages 및 모델이. In 모델 하나의 메인 이미지의 경로를 저장하지만 modelImage에 많은 이미지가있을 수 있습니다. 테이블은 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에서 테이블을 모든 이미지를 삭제하고 난 그냥 두 번째 코드를 사용하는 경우, 그것은 모델 테이블에서 하나 개의 이미지를 삭제합니다.
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/...
결론 : 내가 함께 사용할 경우
는하지만 난 unlink()
오류를 얻는 내가 함께 querys의 모두를 사용하는 경우 작동하지 않습니다 연결을 해제.
'echo getcwd();'PS :'unlink()'에 직접 사용자 입력을 받아들임으로써 위험에 처해 있습니다. – zerkms
준비 진술을 잘못하고 있습니다. http://www.php.net/manual/en/mysqli-stmt.bind-param.php – Galen
첫 번째 코드 섹션은 경로의 모든 이미지를 이미 삭제합니다. 이것이 두 번째'unlink();'가 경고를 던지는 이유입니다. – ihsan