2016-12-21 28 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

不,谢谢,我宁愿没有,因为我害怕被拖过一个可能深的兔子洞*大声笑* –

相关问题