1

私がやろうとしているのは、ユーザーが「削除」ボタンをクリックすると、サーバーからファイルが削除され、同じファイル名が保存されているデータベース行が削除されることです。これで、ファイルはサーバーから正常に削除されます。問題ではありません。

問題は、同じファイル名が保存されているデータベース行を削除していないことです。どうすればこれを達成できますか?

以下は、deleteimage.php に移動する削除ボタンの JavaScript 関数です。

var counter = 0;

function stopImageUpload(success, imagefilename){
    counter++;

    $('.listImage').eq(window.lastUploadImageIndex).append('<div>' + htmlEncode(imagefilename) + '<button type="button" class="deletefileimage" image_file_name="' + imagefilename + '">Remove</button><br/><hr/></div>'); 

    var _counter = counter;

    $('.listImage').eq(window.lastUploadImageIndex).find(".deletefileimage").on("click", function(event) {
        var image_file_name = $(this).attr('image_file_name');

        jQuery.ajax("deleteimage.php?imagefilename=" + image_file_name)
            .done(function(data) {
                $(".imagemsg" + _counter).html(data);
            });

        $(this).parent().remove();
    });

    return true;   
}

以下はdeleteimage.phpです:

<?php

$username="xxx";
$password="xxx";
$database="xxx";

mysql_connect('localhost',$username,$password);

mysql_select_db($database) or die( "Unable to select database");

$image_file_name = $_GET["imagefilename"];

echo "$image_file_name was Deleted";
unlink("ImageFiles/$image_file_name");

$imagedeletesql = "DELETE FROM Image (ImageFile) 
    WHERE ('ImageFile = ImageFiles/". mysql_real_escape_string($image_file_name)."')";

mysql_query($imagedeletesql);

mysql_close();

?>
4

1 に答える 1

2

SQL 構文が少しずれているようです。これを試して:

$imagedeletesql = "DELETE FROM Image 
    WHERE ImageFile = 'ImageFiles/". mysql_real_escape_string($image_file_name)."'";
于 2012-05-06T01:02:34.173 に答える