2016-05-24 66 views
0

我有一個圖庫頁面,用戶可以刪除他們上傳的照片。例如:通過URL參數設置的記錄不會從MySQL數據庫中刪除

可以通過以下方式刪除圖像:將圖像標識作爲變量傳遞的鏈接;

http://domain.com/delete-photo.php?imgid=3 

但它不工作,我似乎無法得到行刪除,儘管嘗試了幾種不同的方法。對互聯網的搜索還沒有扭轉任何可以發揮作用的東西。

我得到一個錯誤或被重定向到(我應該是)編輯畫廊頁面。

我的PHP代碼delete-photo.php是;

<?php 
    require("includes/common.php"); 

    if(empty($_SESSION['user'])) 
    { 
     header("Location: index.php"); 
     die("Redirecting to index.php"); 
    } 

$imgid = $_GET['imgid']; 
$sql = "DELETE FROM photos WHERE id='$imgid'"; 

header("location: edit-gallery.php"); 

?> 

我在做什麼錯了?

+0

我看你定義一個變量'$ sql'作爲一個字符串,其中包含你想運行的查詢,但我看不出有任何的代碼,然後對數據庫執行該查詢。你的問題中的代碼塊是完整的代碼嗎?如果是這樣,您需要執行查詢,最好使用準備好的語句和PDO來轉義映像標識以防止SQL注入。 – stratedge

+0

另外,不是你的問題在這裏,但不要使用獲取刪除數據!使用帖子。 – AbraCadaver

+0

謝謝......我已經解決了這個問題。我需要執行它 - 哎呀! –

回答

0

您忘記執行查詢。你可以使用php PDO對象。

+0

是的。我相信我將它包括在內,認爲我錯過了上面的貼,但沒有我沒有執行它。謝謝。 –

0

通過執行查詢來修復,我忘了這麼做。

<?php 
    require("includes/common.php"); 

    if(empty($_SESSION['user'])) 
    { 
     header("Location: index.php"); 
     die("Redirecting to index.php"); 
    } 

$imgid = $_GET['imgid']; 
$sql = "DELETE FROM photos WHERE id='$imgid'"; 

$query = $db->prepare($sql); 
$query->execute(array("$imgid" => $imgid)); 

header("location: edit-gallery.php"); 

?>