2016-02-14 96 views
0

此程序是爲了刪除記錄時,給定的ID。php刪除記錄使用ID

PHP:

if ($_GET['type']=="file"){ 

    $servername = "localhost"; 
    $username = "****"; 
    $password = "****"; 
    $dbname = "****"; 

    // Create connection 
    $conn = mysqli_connect($servername, $username, $password, $dbname); 
    // Check connection 
    if (mysqli_connect_error($conn)) { 
     die("Connection failed: " . mysqli_connect_error($conn)); 
    } 
    $sql = "SELECT id,user, FROM CreationsAndFiles WHERE id =".$_GET['id']." LIMIT 1"; 
    $result = mysqli_query($conn,$sql); 
    $row = mysqli_fetch_assoc($result); 
    if ($row['user'] == $login_session){ 
     $sql = "DELETE FROM CreationsAndFiles WHERE id=".$_GET['id']; 
     if(mysqli_query($conn, $sql)){echo "deleted";} 
    } 
    mysqli_close($conn); 
    //header("location: index.php?page=CreationsAndFiles"); 
} 

標題是type=file&id=9 存在這樣的情況id=9 它沒有明顯的理由是行不通的記錄。

+0

錯誤是什麼? –

+0

這條語句'if($ row ['user'] == $ login_session){...',你在哪裏定義了'$ login_session'? –

+0

也許你可以在你的if塊中添加一些'echo'語句來查看執行過程中的哪個路徑? – Jeff

回答

2

您的SQL語法錯誤;

SELECT id,user, FROM CreationsAndFiles... 
      ^extra comma 

應該是簡單的

SELECT id,user FROM CreationsAndFiles... 

你可能想,雖然淨化你的輸入,例如只需輸入type=file&id=id將最有可能做壞事。

+0

它不應該做壞事,除非用戶是上傳它的人。 – DrevanTonder

+0

@DrevanTonder是的,確實如此,但是通過將SQL注入到select和delete字符串中可以做到更糟糕的示例。剛插入到SQL語句中的未經數據處理和未經參數化的數據通常會導致嚴重的麻煩。 –

+0

謝謝我沒有想到這一點。 – DrevanTonder