2016-12-21 29 views
-2

美好的一天,我不擅長在這裏提問,所以我會盡力。當我嘗試從數據庫中刪除一個id時,我得到這個錯誤。如何在PHP中使用DELETE FROM刪除數組中的ID?

錯誤您在SQL語法中有錯誤;檢查對應於你的MySQL服務器版本的第1" 行

這裏是顯示數據庫信息頁面上的公告窗體使用「」附近正確語法手冊。

<form method='POST' action='clientinfodelete.php'> 
    <input type='hidden' value=".$row['client_id']." name='id'/> 
    <input type='submit' value='Remove' name='id' /> 
</form> 

這裏是clientinfodelete.php頁。

<?php 
//connection 
include 'conntest.php'; 

if(isset($_POST['id'])){ 

    $sql = "delete FROM clientInfo WHERE client_id =".$_GET['id']; 
    if(mysqli_query($conn, $sql)){ 

     header('Location:emailnotify.php'); 

    }else{ 

     echo "Error ".mysqli_error($conn); 

    } 
} 
?> 

爲什麼會出現這個錯誤?

+1

兩個隱藏的輸入並提交持相同的名稱屬性 –

+0

和上帝只知道在哪裏。 '$ row ['client_id']'已經填充。 –

+0

OH NO !! a -1已經ok。OK ok我會嘗試重寫這段代碼。我也剛剛得到了這個帳戶。當拍... –

回答

3
  1. 您檢查是否isset($_POST['id']),然後您使用$_GET['id']
  2. 您的代碼易受攻擊。您應該閱讀bobby-tables story
  3. 下一次 - 除了你從mysql獲得的錯誤,你還應該打印查詢。這樣你就可以看到究竟是什麼問題了(在你的情況下,你可能會得到delete FROM clientInfo WHERE client_id =(這是錯誤的語法)
  4. 你輸入的名字和你提交按鈕的名字是一樣的,你應該用這個名字只有1次(否則最後一個將覆蓋其他)

你的HTML更改爲:

<form method='POST' action='clientinfodelete.php'> 
    <input type='hidden' value=".$row['client_id']." name='id'/> 
    <input type='submit' value='Remove' name='submit' /> <!-- changed here from id to submit --> 
</form> 
+0

是的,但隱藏的輸入和提交都保持相同的名稱屬性。 –

+0

@ Fred-ii-,你是對的!我會將其添加到答案中,除非您想用該信息打開一個新的答案。 – Dekel

+0

不,謝謝,我寧願沒有,因爲我害怕被拖過一個可能深的兔子洞*大聲笑* –

相關問題