$ dba에서 $ imagenes 양식을 삭제하는 방법을 알아야합니다 ... 성공적으로 수행 할 수 없습니다 (db는 성공적으로 삭제됨) ... 이미 링크 해제 코드를 넣었으나 오류 로그에 이미지의 ID는 표시하지만 이미지의 이름은 표시하지 않습니다 ... 여기 내 PHP 코드는 다음과 같습니다.PDO를 사용하여 mysql db에서 경로를 삭제할 때 이미지를 삭제하는 방법
--- EDITED-- -
그래서 나는 id (idToDelete)에서 $ imagenes를 삭제하는 방법을 모르겠다. 이전에 테이블을 선택할 수 있습니까 ?? 또는 테이블
- id_imagen (INT의 PK)
- imagenes (VARCHAR 100)
- id_paciente (FK를 INT)
- f_imagen (CURRENT_TIMESTAMP 여기
필요 없다)
에서 I 이미지를 가지고 아약스 호출 나는 그것을 삭제하려고 personal.php :
/*the styles of del button and wrapper */
<style type="text/css">
.del_wrapper{float:right;}
.content_wrapper {
max-width: 100%;
margin-right: auto;
margin-left: auto;
}
</style>
/*the ajax call */
<script type="text/javascript">
$(document).ready(function() {
$("body").on("click", "#gallery .del_button", function(e)
{
e.returnValue = false;
var clickedID = this.id.split('-');
var DbNumberID = clickedID[1];
var myData = 'recordToDelete='+ DbNumberID;
jQuery.ajax({
type: "POST",
url: "delimage.php?ts=" + new Date().getTime(),
dataType:"text",
data:myData,
success:function(response){
$('#item_'+DbNumberID).fadeOut("slow");
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
});
});
</script>
/*the image gallery */
<div id="gallery">
<?
$sql = $conn->prepare("select * from IMAGENES where id_paciente = $_GET[id_paciente] order by id_imagen ASC");
$sql->execute();
while($row = $sql->fetch(PDO::FETCH_ASSOC)){
$id_imagen = $row['id_imagen'];
$imagenes = $row['imagenes'];
echo "<div class='del_wrapper' id='item_".$row['id_imagen']."'><a href='#' class='del_button' id='del-".$row['id_imagen']."'>";
echo "<img src='../images/icon_del.gif' border='0' />";
echo "</a>";
echo "<a href='../$imagenes' class='group4'>";
echo "<img src='../$imagenes' class='image_thumbnail' />";
echo "</a> </div>";
}
?></div>
하고 코드 delimage.php에 선택과 :
<?
include_once("config.php");
if(isset($_POST["recordToDelete"]) && strlen($_POST["recordToDelete"])>0 && is_numeric($_POST["recordToDelete"]))
{
$stmt=$conn->prepare("SELECT id_imagen,imagenes FROM IMAGENES where id_imagen = $_GET[id_imagen]");
$result = $conn->query($sql);
while($row = $result->fetch(PDO::FETCH_ASSOC)){
$recordToDelete=$data['imagenes'];
unlink("../imagenes/$imagenes");
}
$idToDelete = filter_var($_POST["recordToDelete"],FILTER_SANITIZE_NUMBER_INT);
if($stmt=$conn->prepare("delete from IMAGENES WHERE id_imagen=$idToDelete"))
$stmt->bindParam("$idToDelete",$id_imagen,PDO::PARAM_INT);
$stmt->execute();
$dbh = null;
}
?>
피들러에서 delimage.php에서 삭제할 이미지의 ID를 볼 수 있기 때문에 ajax 호출이 작동하지만 d 만 다음과 같은 방법으로 bindParam을 사용합니다 :
$ POST []와 $ GET []을 섞을 수 없습니다. 사용하는 것은 FORM 방법에 따라 다릅니다. –